Skip to main content

Full text of "68 Micro Journal Volume 11 Number 02"

See other formats


Au6tfB/ia A $4 75 He* ZbsImM HZ $ 650 
Singapore SS9 45 Hong Kong H $2350 
Malays* M S9 4S Sweden 30:*$£K 



$2.95 



USA 



MICRO JOURMN. 



OS-9 Atari Amiga Mac S-50 

6800 €809 68008 68000 68010 68020 68030 

The Magazine for Motorola CPU Devices For Over a Dtcadtf 



This issue; "C" User Notes p.6 

Motorola 88000 RISC p. 25 

Logically Speaking p.13 

Mac Watch p.41 

Position Independent & Reentrant Code for 

the 68000 Family p. 45 

„ A SK1KK AiarfAmlfli 

Uo-9 FLEX Maclnloih J\ lUirCont'ifatorjoomd And Lots More! 





The problem wilh mosl real-time operating syslcms is 
simple, Ihey're nol an integrated so^ulitm. You end up dealing 
wilh a multitude of suppliers for languages, compilers, debug- 
gers and olhcr important development lools. And when 
something docs «o wrong, il con be a frustrating experience 
laying lo slraighlen oul ihe mess. 

Why Not Tiy the 
Microware One-Stop 
Total Solution f 

Microware's OS- L ) Real-Time 
Operaling Syslem is a tola I inte- 
grated software syslrm, not jusl 
a kernel. V\fe offer an extensive 
sel of development UxjIs, lan- 
guages, I/O and Kernel oplions. 
And this total integrated solution 
is entirely designed, built and 
supported by the same expert 
Mkroware team. 



M»r rrsMoAr * *i ti*K*.l*HOfl l».K*eni.ifk ol 
Mm rowan* Sv^ifiAt <irm*,m<;)M 
OS .I lii ii U,\i ktikii k \d Mk kmm mv 
UNIX ts jo^ktiwrk d M * I 
VAXe»Jlr.uk«tifcirWL>U 



The OS-9 Success Kit 


A Total Integrated Solution for Your Next Project 


Development Tools: 


Languages: 


CSourceLtivfiiOebuoacr 


c* 


Symbol Debugger 


Basic 


Syslem Sidle Debugger 


Rascal 


uMACS Text Editor 


Fortran 


Beclrgrac Mall 


Ada** 


Communicaiions 


Assonbler' 


Super Shell 




Kernel Options: 


I/O Options: 

SCSI. SASI&S MO Disks 


MMU {Security Proieclion) Support 


3-. 5», 8-mch Diskettes 


Matt Coprocessof Suppori 


Magnetic Tape 


% mskkntw UNIX *«tffli«vaila5to 


Ethernet* TCP/ IP 


"VAXNwted 


Aicnet- OS-9 Net 







Modularity Lets YOU Choose fust What You Need. 

The modular design of OS-9 allows our OfX.»mling Syslem 
lo adapl as your requirement change. OS-9 can support a 
complete <>peclrum of applications — from emr)edded ROM- 
based code in board-level prcxlut is all the way up lo large- 
scale syslems. 

Support is Part 
of the Package. 

Microware is proudly selling 
Ihe industry's standard for cus- 
tomer suppori. You'll find pro- 
fessional and comprehensive 
technical documentation and a 
Customer Holline staffed by 
courteous and authoritative soft- 
ware engineers. 

So slop messing with sim- 
ple kernels and in dependent 
suppliers. Call Microware loday 
and find oul more about the 
"One-Slop Integrated Solution" 
with OS-5! 



— Ttuctowtc^- OS-9 



Microware Systems Corporation 

I9U0 N.W.I 14th Strvt?t 
Des Moines, Iowa 50322 
Phone: 515/224- 1929 



Western Regional Office 
4401 Great America Parkway 
San la Clara, California 95154 
Phone: 408/98OO201 



Mien? ware Japan Ltd. 

41-19 1 loncho 4-Chome 
FunabashiCity 

Chiba 273, Japan 
Phone: 0474 (22) 1747 



Mustang -020 Mustang-OS Benchmarks yi t* 

tBMAT?300XBkSyt3 9,7 

ATOTTWOUMXPCMOlO 7* 

DfiC VAX 11/7B0UNDC Boti^O 3j6 

DBCVAXli/750 ' " 5.1 

6»08OS-9ffK9MhA 114 

63000 OS-9CBK 10 Mh* 6J 

HUSTANG-H U00S OSS 4$K 10 Nkt »J 

MVSTANO^M 64920 OS* MJC M Mkt 22 

UVSTAAG429 *m*0 MC«9*8l U*fLEX 16 Nkt 1* 

laalaO 



faf(M>;l<WWtt;~Qi 

EAlmta* MIPS . >CUSrANC-»2» ^ 43 MI!*, 
Bui « to a . If MIFS: Motorola Spaa 



Ri^«3 



4,3 

31 
94 
44 
«J 
0M 
132 



OS-9 



OS-5 Pwfcasfeaial Vcr 


jasaiw 


*toclw*t»CC<ma>W 




Baak09 


KXJ40 


CQnqafe 


SOOjOO 


69000 OngmMff (tNwo *d± S 100.00) 


10000 


Fortran 77 


7SOOO 


Mkiuwciv focal 


SOOjOO 


OdcpmAPwc^ 


900,00 


Sryio-Qr.pt 


49540 


5*>io>Spett 


195.00 


Sl>ioMerr 


17540 


S*>to-O*f* -5 $*U-Mc» ae 


69540 


PAT%/C«u» 


22940 


JUST-ATaoarr* 


79,95 


pat/jus rcanbo 


149 50 


W^w^Caeabalow) 


99540 


COM 


12540 


UnlFLEX 




i;o7LEX<0B020wr) 


54300) 


SowroGAwr 


15040 


Sol»*fe»a» 


20040 


BAStOPtoZanfOa 


30040 


CC<ne>to 


350.00 


COBOL 


75040 


CMOOGM vAvro 


1 00 00 


7W006M •*»«•« 


toaoo 


XTALK(«aA4j 


9955 


Gon A«aan*Aar 


5040 


fata* 71 


4150.00 


Jcatpwr* (n kJow) 


99540 


Steals MUJTANOMTar* ahJppx<i 113 Mhz. 




AAJ fn 16j6 Mha 66TJ&> 


37540 


AiSJfc 16.6 Mha 6B881 


37340 


A4J for M Mhi 6*X20>RAM 


75040 


lfilNnaapRSB? 


35540 


RiKpsn 1 <r 2 Aifcr*r Co* bolov J15222 Ai%atr 


16540 


Each cud mppM 4 oddiriond tee pxvts 




(wtal of 36 anal pom MpfUfed) 




60lutf\ralkJ GOaard 


39140 


tsu 3 fl2)0 bser Ws/TVn^ c^Apa, 




6 pnpiofS linMMch. "pw* buffer 




dawxks vavoi ta mch pmp. 




iiuuyfB immiu 


7540 


inn far txrib dip and PDA dttkaa A t 




p^wJiwJ iBDiy ma «p to 31 2K OHAM 




S8CAN 


47540 


aaasrCaa b*^m the ryaasm tad 




AAOFBT andifkd to*a»»paMfe* LAN. Sbc apio opkaaJ . <*A 


UlNauft»v»4i~tt 


12D40 



&fm»laitotMi*miiMWQMnalt*vdi*m J19540 

Spockl for a-apitt MUST ANO-0W" iy«ott bu)c* * Safrxr* 
$69540 SAVB 5300 00 
Scal*att DtarOuati 



Ail MUSTANO-Oar*' ijiv tad kxmt 
Pattern on all latod aoltwan: 10-70% 
•ria* ia qaotos. OwzauB ■pfi'y after the safe 




Mustang Specifications 

123 MKi (opdoml 16.6 Mhz available) MC68020 full 32- hit wide path 

32- bit wido data and tddran buses, on* multiple i<** 

cm dup (ACtnmux) cache 

object eodo cxsrspalible with all 68XXX family processor* 

enhanced idRxueum id • msib co-fnoasMV intcrf see 

68881 math bi-apood fliwii^ potni c«vpiw*anr (optional) 

dims eiiotaion of f\i!l 68020 tn*xn>c*ion act 

full avopor IEEE P75d. draft 10.0 

transcend cxtfaJ «nd other ademific math (unfliona 

2 Megabyte of SIP RAM (5i2* 32 bii ocganiimiicn) 

up to 2SSK trytea orEFROM (64 x 32 bits) 

4 Asynch/roouc aerial I/O porta standard 
optional to 20 aenal pons 
aundaid RS 232 interface 
oprinni] net weak imerftoc 
buffered 8 bit parallel port (1/2 MC68230) 
Centronics type pinout 
cJipansion cMmactor for I/O devices 
16 bit data path 
256 byte addjou space 
2 tnienupt inputs 
clock and cunlrol signals 
Motorola 1/OOjanncJ Modules 
timeof day cl^^aiaidar w/battay backup 
corftroUer for 2, 5 1/4" floppy disk drives 
single or double aide, single or double density 
35 to 80 track selectable (4S-96 TPT) 
SASI intofacs 

programmahio penodic jnU^rupl gomraks 
tnu^rupt rate from micro- aeconda to seconds 
highly accurate lime base (5 PPM) 

5 hit sense switch, readable by cto CPU 
Hardware tingle- step capability 

Theae hi-apeed 68020 syauans axe present) y working at NASA, Atomic Energy Commission, 
Covemmcnl Agencies u well as Universities, Business, Laba, and t*her Critical Applications 
Centers, worldwide, where speed, math crunching and multi-user, multi-tasking UNIX C level 
V compatabiliiy *&& low owt is a must. 




Don't be mislead! 

ONLY Data-Comp 

delivers the Super 

MUSTANG-020 



Only the "PRO" Version 
ofOS-9 Supported! 




This is HEAVY DUTY 
Country! 



|Fwallfnh«tjm»w«taf«tcfleff.if400tf«ft^on / ourn 
1 o*1 68XXX SBC Musi b* worWng propwty and * 

LOOrflpteta) wnh si aottwaf* , cabfaa and documentBton. . 
C& tor mora, mfof matton 



Price List: 






Mustang -020 SBC 




$2490.00 


Cabinet w/twiiching PS 




$299.95 


5"-80 track floppy DS/DD 




$269 95 


Floppy Cable 




$39 95 


OS- 9 68K Profesaicnal Version 




$850 00 


C Compiler ($500 Value) 




N/C 


Winchester Cshle 




$39.95 


Winchester Drive 25 Mbyte 




$895.00 


Hard Disk Controller 




$395.00 


Shipping USA UPS 




$20.00 


UnifLEX 


Leas 


$100 00 


MC68W1 f/pmaih processor 


Add 


$275 00 


16 67 Mhx MC68020 




$37500 


16.67 Mhi MC6SS81 




$37500 


20 Mhz MC68020 Sys 




$750,00 


Note all 68881 chips work with 20 Mhi Sys 






Total: 


$5299.80 



NEW LOWER PRICES 

25 Mbyte HD |32^^H $3749.80 
85 Mbyte HD $524&gTJ $4548.80 



Note: Only Professional OS-9 Now Available 
(68020 Version) Includes ($500) C Compiler - 
68020 A. 68881 Supported - For UPGRADES 
Write or Call for Professional OS-9 Upgrade Kit 



Data-Comp Division 

G-i iT^y^"^ i ^ Pocade of Quality Service" ^ 
*J ^^ Systems WoildWlde 

Computer Publishing, Inc. 5900 Cassandra Smith Road 
Telephone 61 5 842-4601 - Tetex 510 600*6630 Hixson. Tn 37343 



68 Micro Journal 



February 89 



A Member of the CPI Family 



68 Micro 
Journal 



/0 Years of Dedication to Motorola CPU Users 



6800 6809 68000 68010 68020 



The Originator of "DeskTop Publishing™" 

Publisher 
Don Williams Sr. 

Executive Editor 

Larry Williams 

Production Manager 
Tom Williams 

Office Manager 
Joyce Williams 

Subscriptions 
Cheryl Hodge 

Contributing & Associate Editors 

Ron Anderson Dr. EM. "Bud" Pass 

Ron Voigts Art Weller 

Doug Lurie Dr. Theo Elben 

Ed Law Sl Hundreds More of Us 





Software User Noces 

Logically Speaking 

Interfacing the 88000 

Mac-Watch 
^Writing Position Independent & Reentrant Code 
" for thr 68000 Family 45 Van Sickle £*< 

Bit Bucket 51 




COMPUTER 



PUBLISHING, INC. 

44 Over a Decade of Service " 



"WorW 





Wide" 



68 MICRO JOURNAL 

Computer Publishing Center 
5900 Cassandra Smith Road 
PC) Box 849 
Hixson.TN 37343 
Phone (615) 842-4600 Telex 510 600-6630 
Copyrighted © 1987 by Computer Publishing. Inc. 
68 Micro Journal is the original" DeskTop Publishing" product and has 
continously published since 1978 using only micro-computers and 
special "DeskTop*' software. Using first a kit built 6800 micro-com- 
puter, a modified "ball" typewriter, and "home grown" DeskTop Pub. 
lishing software. None was commercially available at that time. For 
over 10 years we have been doing "DeskTop Publishing"! We origi- 
nated what has become traditional "DeskTop Publishing" .' Today 68 
Micro Journal is acknowledged as the "Grandfather" of "DeskTop Pub 
lishing" technology. 



( ^Contribute Nothing * Expect Nothing" dmw isga ) 



68 Micro Journal (ISSN 0194-5025) is published 12 times a year by 
Computer Publishing Inc. Second Class Postage paid at Hixson, TN. 
and additional entries. POSTMASTER: send address changes to 68 
Micro Journal. POB 849, Hixson. TN 37343. 



Subscription Rates 

1 Year $24.50 USA, Canada & Mexico $34.00 a year. 

Othcis add $12.00 a year surface. $48.00 a year Airmail. USA 

funds. 2 years $42.50. 3 years $64,50 plus additional postage 

for each additional year. 

Items or Articles for Publication 



Articles submitted for publication must include authors name, ad- 
dress, telephone number, date and a statement that the material is 
original and the properly of the author. Articles submitted should be 
on diskette. OS-9. SK'DOS. FLEX, Macintosh or MS-DOS. All 
printed items sliould be dark type and satisfactory for photo- reproduc- 
tion. No blue ink! No hand written articles - please! Diagrams o.k. 

Please - do not formal withspacesany text indents, charts, etc. (source 
listing o.k.). We will edit in a 11 far matting. Text should fall flush left and 
use a carriage return only to indicate a paragraph end. Please write 
for pee authors guide. 

Letters & Advertising Copy 

Letters to the Editor should be the original copy, signed! Letters of grip 
as well as praise are acceptable. We reserve theright to reject any letter 
or advertising material, for any reason we deem advisable. Advertis- 
ing Rales: Commercial please contact 68 Micro Journal Advertising 
Department. Classified advertising must be non -commercial. Mini- 
mum of $15.50 for first 15 words. Add $.60 per word thereafter. No 
classifieds accepted by telephone. 



February 89 



68 Micro Journal 



' PAT - JUST S 



PAT Cm m 



With 'C Source! 

I 



$229.00 i %©fl®01fi) 



1,200 Tito, 



A Division off 

c p 



S.E. 
Media- 

5900 CAiundtt Smith Rd 
Hvu0D,To 37W3 



ITckgbar 615 842-4*09 
Tekx5l060O4630 



PAT FROM S. E. MEDIA -- A FULL FEATURED SCREEN ORIENTED TEXT EDITOR 

with all the best of PIE. For those who swoie by and loved PIE, this is for YOU! All PIE 
features & much more! Too many features to list. And if you don't like ours, change or add 
your own. C source included. Easily configured to your CRT terminal, with special configuration 
section. No sweat! 

68008 - 68000 - 68010 - 68020 OS-9 68K $229.00 




PAT1JUST 

Special $249.00 

JUST 

JUST from S. E. MEDIA - - Text formatter written by Ron Anderson; for dot matrix 
printers, provides many unique features. Output formatted to the display. User con- 
figurable for adapting to other printers. Comes set-up for Epson MX80 with Graflex. Up 
to 10 imbedded printer control commands. Compensates for double width printing. 
Includes normal line width, page numbering, margin, indent, paragraph, space, vertical 
skip lines, page length, centering, fill, justification, etc. Use with PAT or any other text 
editor. The ONLY stand alone text processor for the 68XXX OS-9 68K, that we have 
seen. And at a very LOW PRICE! Order from: S.E. MEDIA - see catalog this issue. 

68008 - 68000 - 68010 - 68020 OS-9 68K 
V With 'C f source $79.95 J 

$8 Micro Journal February '89 



©IL®©H ©HIP ©IPH©n<&IL 

SCULPTOR 




From the world's oldest 
& largest OS-9 software house! 

CUTS PROGRAMMING TIME UP TO 80% 

6809/68000-68030 SaV6 90% 

SCULPTOR-a 4GL - Only from S.E. Media at these prices. OS-9 levels one and two (three GIMIX) 6809, 
all 68XXX OS-9 standard systems. Regular SCULPTOR versions 1.4:6. One of if not the most efficient 
and easy to develope DBMS type systems running under OS-9! A system of flexible keyed file access that 
allows extremely fast record and data retrieval, insertion and deletion or other programmed modifica- 
tions. Access by key or in ascending order, very fast. The system provides automatic menu generation, 
compilation and report generation. Practically unlimited custom input format and report formatting. A 
rich set of maintenance and repair utilities. An extremely efficient development environment that cuts 
most programming approximately 80% in development and debugging! Portable, at source level, to MS- 
DOS, UNIX and many other languages and systems. 

Standard Version: 1.6 6809 - $1295.00 

68000 $1295.00 

68020 $1990.00 

f " 

Due to a "Special One Time" Purchase, We Are 
Making This Savings Offer. Quantities Limited! 
Once this supply is gone the price goes back up! 
System OS-9: 6809/68000-68030 
•Regular $1295,00 

ONLY 



$99.95 




S.E. MEDIA 

POB 849 5900 Cassandra Smith Road 

HIXSON, TN 37343 61 5 842-4601 

Telex 510 600-6630 



AVE - WHILE SUPPLIES LAST! 




February B9 



6B Wcro Journal 



'!ch-pfwnc: (6ts)S42-46oo South 'East ftfedia 

QS-9, ilni'J OEX, 'J L'LX, S'K ''A \S 
.'/.' ffease Specif n 'your i ipemtiiM System ami 'Disk 



Tefaa 5HkitXhb.H) 



Sculptor 



Full OEM & Dealer Discounts Available! 



M SCULPTOR SYSTEM 

So*rtc» tomtorm ****** >*»» >'nMm k.j^ 

«Mi 411 .davit Mm apjMpaaai* «*n 

BKMlCdRl *fl U MMdi what Vl4*- Am b*a* 
a «m4 can ha *hb**d n m* * *•* ***** 

AN ESTABLISHED UADtR 



THf PACKAGE 



|J|. 

I MmjMtrm 

Orffv IWikfv 



DATADCTK5NARV INDEXING TECHNIQUE 

l*h Kb frm haw ixw 'f mpf w«d ^KdplU mtlrttm f B »ff «ln hi 



Unc* h«i w#i laa d hat k hum an *wt JmNHnj Luiitrirtvt 



Facto 



Features 



INPUT DATA VAI JDATKDN 

l»PUl Ait* rrm, U wMiM t tfw 
lavwfe 

1 ■*•* DwikW»nfc.*<la»a<**onjry 

DATA FILE STRUCTURE f«w»i*.c»s*jlo0r 

DhicHMLlMdWt^mo^ ARfTHM£7)C OPERATORS 



SYSTEM INDEPENDENCE 

Scufrajoc . nniiMifin wnydfcw 
PTMH OOfflM^ayMflaajlt ■Knlflrl| h . 

VMS th* i>a m i ^ <>Mi^n^p o imhi>i*>*f«*nfjw* 



r~ 



malptrw 



inhrw^-j 



APPLICATION P0RTA81JTY 



Sculptor for 68020 
OS^9 & UniFLEX 
$995 



RELATIONAL CURATORS 



i bmtm fen - ■■ 

fTlIlMMlt 

I I -P» .,•!.( 



SPECIAL FEATURES 

FuUdjtoflrthimrfe 

ti-ho IMM1 *» P 






MAXIMA AND MINNA 

ItObyvk 
3Mb 
»Mt«adUi^ 17767 M*» 
1 E767 
LpwtV lb, 
16 



Iftffamutffe 
OaKhiatH 




ikff nf tf i' i tfw l«naj*y and ifprnanha* ^ «* «mu*» fll_ 
%irif*jf la thwaJy ai «mi m :mi ?thtirtin 



MUSTANG-020 Users . Ask For Your Special Discount! 



r 



■~i 



MTJSTANG020 



*$1.990$398 $795 
*$1.295 $259 $495 



PC/XT/ AT/MSDOS $695 $139 $299 



MUSTANG-08 *$ 1.295 $259 $495 Call or write for prices on the following systems. 

XENIX SYS III & V. MS-NET. UNIX SYS 111 A V. ATARI 03-9. B8K. UNOS. UI.TRIX/VMS {VAXRKGALL STRIDE. ALIOS. APRICOICT. ARETE. ARM 
STRONG, BL£ASDAL£. CHARLES RIVERS. GMX. CONVERGTECH. DEC. CIFER. EQUINOX. GOULD. 111*. HONEYWELL. IBM. INTEL. MEGADATA. 
MOIDROLA. NCR. NIXDORK, N.STAR. OLIVETTI /AT&T. ICL. PERKINS ELMER. PHILLIPS, PIXEL. PLESSEY, PTXXUS. POSITRON. PRJME. SEQUENT. 
SIEMENS. SWTPC, SYSTIME. TANDY. TORCH, UNISYS. ZYLOG. ETC. 

* For SPECIAL LOW SClilJTOK prices especially for 68»l*GKXXX «S*!> Systems - See Sp<s 
elal Vd thlj* Innuc* Ko member, M When tht*y arc gtiiH- the pri<v tim^ U:nU up an- at>o\v!^ 

... Sculptor Will Run On Over 100 Other Types of Machines ... 

... Call for Pricing ... 

!!! Please Specify Your Make of Computer and Operating System !!! 



• Run Time (>nly 

•• C Kn Flic Library 



O ■ D9»*, 1 - !K*DOS 
F . FLO, U . 1MAXX 
CXS . Cbkw CmpUr OS-t 
OCT . C«*or rm m ^ m an 




South "East (Media 

$300 Casumdfa Smith tfaC * ^ft?^ Til 3 7343 

TtUpfw (Sl$) $42-4600 Te/cc S106OX630 




flMtfwrard 



•• Shipping •• ,. 

A66 2* U3JL (i^nl «"•) 
fWap> SurOrt Add 5* 
For4p> AlnMll Abd !•» 
Or CUXD, Sh^nf Orrfy 



iQM b ■ TrMwMffc at Mtgr—f. tai M«^mfcv*yLCl i»d UnaVULl in TwfaTkmrTtdMW »r«|«w Cbt > iiattMtt>*i|C1)0» li ■ Tra4wwrtt * **r-K Selt*mn Sf^mi C«> 



68 Micro Journal 



February *69 




The C Programmers 

Reference Source. 

Always Right On Target! 

( C User Notes ) 



A Tutorial Series 



By: Dr. E. M. Bud* Pass 
1454 Laua Lane N.W. 
Conyers, GA 30207 
404 483-1717/4570 

Computer Systems Consultants 



INTRODUCTION 

This chapter presents an enhanced version of the getopt 
function, which is used to scan the command line. This 
function was originally placed in the public domain by someone 
unknown, but was later enhanced by Keith Boslic and others, 
and subsequently extended and provided by 

Lloyd Zusman 
Master Byte Software 
los Gaios, California 

who also piovided much of the text below. 

COMMAND-LINE OPTION SCAN FUNCTION 

Lloyd calls the enhanced version of getoplO by the name 
egeiopiO. The default behavior of this foutine is the same as 
that of getoplO. but it has some optional features that make it 
more useful. 

These options arc controlled by the settings of some global 
variables. By not setting any of these extra global variables, 
they have the same functionality as getoplO- 

The egetoptO function acts like getoplO with the following 

enhancements: 

The T which gets returned when there is an unrecognized 

option is now stored in a global integer called *optbad\ and the 

caller can set this value to anything. The initial value in 

'opibad' is *?*, which means that the default behavior is just like 

that of getoplO. 

For example* if egetoptO is to return *-' instead of '?' when it 
encounters an invalid option, the following lines should be 
executed before egetoptO is called: 

extern int optbad; 
oplbads (inl)'~\ 



Options can begin with characters other than just *-\ There is 
now a global character pointer called 'optstait \ It points to a 
string which consists of a list of characters which can be used to 
begin options. The initial string that 'optstait * points to is "•", 
so the default behavior is like that of geioptO- 

For example, to allow both V and *-* as option delimiters, put 
the following lines in the code before egetoptO gets called: 

extern char *opisiari; 
optstait = *'-+*'; 

Now that there's a choice of the characters that can precede 
options it's desirable to let the caller know what character 
begins a given option. In egetoptO. the global integer 'optchar' 
will now contain the character that begins a given option, or if 
there was an error Insert the following declaration line and 
check the value of 'optchar* after each call to egetoptO: 
extern int optchar; 

The original getoptO writes error messages to Hie descriptor 2 
(or to stdeir, depending on the implementation), In egetoptO. 
this file descriptor may point to any desired file. The global 
integer 'opterrfd * contains the file descriptor to use for writing 
error messages; it is initialized to 2, 

As an example, to send egetoptO ejiors to go to the file 
"egetopterrs", use code similar to the following before calling 
egetoptO: 



extern int opterrfd; 

FXI£ *eout - f open ("egetopt. errs" 



w w"> ; 



if 

{ 



(!eout) 



/* error condition/ 



exit(l) ; 



opterrfd - f ileno(eout) ; 



February 69 



68 Micro Journal 



Some implementations of getoptO allow ihc setting of the 
global integer *opterr* to control whether error output is printed: 
it is initialized to 1, which enables enor output (as docs any 
non-zero value); setting it to disables error output In eg- 
etoptO. *opterr' is treated the same way. 

The old geioptO forces you to use V in the string of option 
letters to show that a given option takes an argument There is 
now a global integer called 'optneed' which contains this value, 
it may bechanged; 'optneed' is initialized to *:\ 

In addition, getoptO is unable to handle optional option argu- 
ments. For example, if an option called 'd* was specified as 
taking an argument to the program *foo\ getoptO would return 
the following results when invoking *foo' in different ways: 

1) foo -dABC -x , , , 
getoptO return: 'd' 
optarg: *ABC" 

2) foo -dABC -x < . , 
getoptO return: *d' 
optarg: "ABC* 

3) foo -d -x 

A) getoptO return: v d' 

optarg: *-. x « 

B) getoptO return: v d' 



while ((c - egetopt (argc, argv, ~abc!d%x") ) 



EOF) 



optarg: 



NULL 



In the case of number 3, sometimes one would prefer to gel the 
latter results. This would allow "-x" to be handled as another 
option in the next call. In the old getoptO* the 3B behavior may 
be gotten by testing the first character of "optarg* and decre- 
menting *optind' if this character is *-\ The new routine may 
have either behavior directly. 

Since this behavior isn't always desired, egetoptO checks a 
global integer called 'optmaybe* which allows the programmer 
to control whether an option with an argument will gel treated 
as number 3A or as number 3B above. It is used similarly to 
'optneed 1 . It is initialized to 0, meaning thai behavior 3B is 
impossible by default 

The following example shows how 'optneed* and 'opimaybe' 
can be used: 

extern int optneed; 
extern int optmaybe; 

optneed - (int)'!'; /* use M' instead of *:' */ 
optjnaybe - <int)'%'; /* use *%' for optional args 



In this example, options *a\ *b\ and V take no arguments, 
opiion 'c' lakes a mandatory argument, and option *d v takes a 
non-mandatory argument If ihis is contained in program *foo\ 
the following behavior will be observed when it it run: 

foo -a -cABC -dXYZ ~d -x -c -b .,, 
egetoptO return: **' 
optarg: NULL 



egetopt ( ) retu m : *c ' 




optarg: 


*ABC" 




egetoptO return: v d' 




optarg: 


XV XYZ" 




»»»»» 


egetopt () re tu rn : 


*d' 


»»»»» 


optarg : 


NULL 


» NOTE » 






»»»»» 


egetopt ( ) retu rn : 


% x' 


»»»»» 


optarg: 


NULL 


egetopt () re t u rn ; * c ' 




optarg: 


*-b" 





Remember thai 'optneed' is initialized to ':' and 'optmaybe' 

is initialized to 0. This causes behavior identical to thai 

of getoptO unless specifically overridden. 

Since the default behavior of egetoptO is the same as thai of 

getoptO. there is no reason why it cannoi be renamed to getoptO 

and used it in place of the original. It was given a new name so 

as not lo conflict with the name of the original getoptO function. 

Following is the source code for egetoptO* 



* egetopt. c — Extended Egetopt' . 

* Original version: 

* 

* Keith Bostic 

* Current version: 



Lloyd Zusman 

Master Byte Software 

Ios Gatos, California 



tifno^f EOF 

# define EOT 
#endif /* ! ECF */ 

fifndef NULL 

# define NULL 
#endif /* ! NULL »/ 



(-1) 



{char *)0 



68 Micro Journal 



February '89 



♦define BAOCH 


(int) 


♦define EMCG 


n/r 


fdef ine ERRFD 


2 


♦define MAYBESEP 


(int) 


♦define NEEDSEP 


(int) 


♦define START 


w_w 



* None of these constants are referenced in the executable portion of 

* the code their sole purpose is to initialise global variables. 

*/ 



•\0' 



/* 

* Here are all the pertinent global variables. 
*/ 

char *optarg; /* argument associated with option */ 

char *optstart - START: /* list of characters that start options */ 

int optbad - BADCH; /* character returned on error */ 

int optchar - 0; /* character that begins returned option */ 

int opterr - 1; /* if true, output error message */ 

int opterrfd - ERHFD; /* file descriptor for error text */ 

int optind - 1; /* index into parent argv vector */ 

int optnaybe - MAYBESEP; /* flag for optional argument */ 

int opt need - NEEDSEP; /* flag for mandatory argujnent */ 

int optopt: /* character checked for validity */ 

/* 

* Conditionally print out an error message and return. 
*/ 

♦define TELL(S) { \ 

if (opterr && opterrfd >• 0) \ 
( \ 

char option - optopt; \ 

write (opterrfd, *nargv, strlen(*nargv) ) : \ 

write (opterrfd, <S) , strlen (S) ) ; \ 

write (opterrfd, fioption, 1): \ 

write (opterrfd, "\n", 1); \ 
) \ 

return (optbad) ; \ 
} 

/* 

* sindex works similarly to index () and strchr(). 
*/~ 

static char * 
_sindex (string, ch) 
char * string; 
int ch; 

t 

if (string) 
{ 

for ( ; * st ring; ++ string) 

( 

if (^string — (char) ch) 

{ 

return (string) ; 

\ 
) 
) 

J 
/* 

* Extended getopt function 
*/ 

int 

egetopt (nargc, nargv, ostr) 



February 89 68 Mao Journal 



int nargc; 
char **nargv: 
char *oatr; 

< 

atatic char *place - EMSG; /* option letter processing */ 

regiater char *oli; /* option letter liat index V 

register char *oai - NULL; /* option atart liat index */ 

if (inargv) 

return {EOF) ; 

if (nargc <■ optind || Jnargv [optind] ) 
return (EOT) ; 

if ( ! place) 

place - EMSG; 

/* Update acanning pointer. */ 
if (i*place) 

{ 

place - nargv[ optind] ; 
if (! place) 

return (EOF) ; 
if (oai - _a index (opt atart , *place) ) 

optchar - (int) *oai; 
if (optind >- nargc 11 loai II ! *++place) 

return (EOT) ; 

/* 

* Two adjacent, identical flag charactera were found. 

* Thia takes care of *-", for exanple. 
*/ 

if (*place — place [-1]) 
< 

♦♦optind; 

return (EOF) ; 
\ 
) 

/* 

* If the option ia a aeparator or the option ian't in the liat r 

* we've got an error. 
*/ 

optopt - (int) *place++; 

oli ■ _aindex (oatr, optopt); 

if (optopt *— optneed It optopt *— optmaybe I I !oli) 

< 

/* 

* If we're at the end of the current argument, bunp the 

* arguirant index. 
*/ 

if (!*place) 

4-foptind; 
TELLP: illegal option - ~) ; /* byebye */ 

) 

/* 

* If there la no argument indicator, then we don't even try to 

* return an argunent. 
*/ 

if (!*++oli || (*oli !- optneed &6 *oli i- optmaybe)) 
< 



66 Micro JoumaJ February 89 



* If we're at the end of the current argument, bump the 

* argumBnt index. 
V 

if << 'place ) 

♦♦optind; 
optarg - NULL; 

) 
/* 

* If we're here, there's an argument indicator. It's handled 

* differently depending on whether it's a mandatory or an 

* optional argument. 
*/ 

else 
< 

/* 

* If there's no white space, use the rest of the 

* string as the argument. In this case, it doesn't 

* matter if the argument is mandatory or optional. 
*/ 

if (*place) 

optarg - place; 
/* 

* If we're here, there's whitespace after the option. 
* 

* Is it a mandatory argument? If so, return the 

* next command-line argument if there is one. 
*/ 

else 

if (*oli — optneed) 

< 

/* 

* If we're at the end of the argument list, there 

* isn't an argument and hence we have an error. 

* Otherwise, make 'optarg' point to the argument. 
*/ 

if (nargc <- ♦♦optind) 
I 

place - EMSG; 

TELL(*: option requires an argument — *) ; 
) 
else 

optarg - nargv[optind] ; 
J 
/* 

* If we're here it must have been an optional argument. 
*/ 

else 

i 

if (nargc <- ++optind) 

( 

place - EMSG; 
optarg - NULL; 

) 

else 

( 

optarg - nargv[optind] ; 
if (1 optarg) 

place - EMSG; 
/* 

* If the next item begins with a flag 

* character, we treat it like a new 

* argument. This is accomplished by 

* decrementing 'optind' and returning 



10 February '89 68 Moo Journal 



* a null argument . 

*/ 
else 
if <_s index (opt start, *optarg) ) 

{ 

-optind; 

optarg - NULL; 
} 
) 

place ■» £2dSG; 
++optind; 
J 

/* 
* Return option letter. 
V 
return (optopt) ; 
} 

EXAMPLE C PROGRAM 

Following is this month's example C program; it is a test driver for the command-line processing function egelopt() just described. 
♦include <stdio.h> 

/* 

* This ia a program for demonstrating 

* the capabilities of egetopt(). 

* Run it with various combinations of 

* options and arguments on the cormvand 

* line to see how egetopt () works. 

*/ 

tdef ine OPT_STRING w abc~d~e?f ?" 
/* Meaning: 
* 

* -a and -b take no arguments. 

* -c and -d take mandatory arguments 

* -e and -f take optional arguments 
V 

♦define OPT_CHARS "-+-" 
/* Meaning: 

* Options can begin with *-' , v +* , or % ~' . 
*/ 

/* 

* New global variables used in egetopt () only: 

*/ 

/* string which contains valid option start chars */ 

extern char *opt start; 

/* what egetopt () returns for a bad option ♦/ 

extern int optbad; 

/* character which begins a given argument */ 

extern int optchar; 

/* where egetopt <) error messages go */ 

extern int opterrfd; 

/* character used for optional arguments */ 

extern int optroaybe; 

/* character used for mandatory argu/rents */ 

extern int opt need; 

66 Mcro Journal February *89 1 1 



* Global variables which exiat in getopt () and egetopt () : 

V 
/* the argument of the option */ 
extern char *op£arg; 

/* aet to to auppreaa egetopt' a error meaaagea */ 
extern int opt err; 
/* index of currant argv[) */ 
extern int optind; 
/* the actual option pointed to */ 
extern int optopt; 

main (argc, argv) 
int argc; 
char **argv; 

i 

int ch; 

/* errora to atdout */ 

opterrfd «• f ileno (atdout) ; 

/* aet thia to 1 to get egetopt ' a error maga */ 

opterr - 0; 

/* return % l* inatead of *?' on error */ 

optbad - M ' ; 

/* mandatory arg identifier (in OPT_STRING> */ 

optneed - ♦*'; 

/* optional arg identifier (in OPT_STRING> V 

optmaybe - x l* ; 

/* charactera that can atart optiona V 

optatart - 0PTJ31ARS; 

while ((ch m egetopt (argc, argv, OPT_STRING) ) !- EOF) 

( 

printf ( w \n\toption index (optind) after egetopt (): %5d\n", optind); 

printf (*\t\tegetopt () return value: %c (%d)\n", ch, ch) ; 

printf ( M \t\tchar that begina option (optchar) : %c\n", optchar) ; 

printf ( w \t\tactual char looked at (optopt): %c\n", optopt); 

printf ( w \t\toption acguront: \*%a\"\n", 
Joptarg ? *(null)" : optarg) ; 



for ( ; optind < argc; ++optind) 

( 

printf ( w \n\t argument index 
printf ( w \t\targument : 

»argv[optind] ? Nnull)" 



%5d\n", optind) ; 
V%aV\n", 



argv [optind] ) ; 



exit(0); 



FOR THOSE WH 




68 MICRO 
JOURNAL 



TW 



12 



February 89 



68 Mcro Journal 



SOFTWARE 



A Tutorial Series 
By : Ronald W Anderson 
3540 Sturbridge Court 
Ann Arbor, MI 48105 



USER 



From Basic Assembler to HLUs 



NOTES 



Since writing the last column, I have 
spent some time looking at RB ASIC. 
I've found a few minor bugs and sent 
the report to Bob Jones. Bob has 
written me a letter and sent a couple 
of revisions. I've been working on 
coding some scientific functions that 
would be accurate to 19 digits, and 
I've sent the first few off to Bob. 
Much of the information I sent him 
has crossed his first letter in the mail. 
Unfortunately the mail from Michi- 
gan to Brinish Columbia Canada 
takes about a week. Bob reported 
that he is interested in increasing the 
accuracy of the scientific functions to 
match the math package, and we will 
most likely colaborate on some im- 
provements. 

I continue to be pleased with 
RBASIC. I did some comparison 
tests withTSC Extended BASIC 
running on a 6809 (2 MHz). The 
FT68K-2 68000 with RBASIC runs 
on the average three to four times 
faster than the 6809 system doing 
rather math intensive calculations. 

I gathered from Bob's letter that he 
badn't expected much of a response 
from me. and that he was glad for 
some feedback. I mentioned having 
started on his logic series and he said 
that I was only the second person 
who had responded in any way. 
Come on, readers. If you like 
something in *68' Micro Journal, let 



RBASIC 

the author hear fiom you. It is 
discouraging to work at something 
month after month and only see one 
or two responses. Write Micro 
Journal or the author of the material 
that you would like to see continue, 
and it will have a better chance of 
doing so. 

Having looked over the material 
from Bob more thoroughly, I will say 
that theie are a few things in RBA- 
SIC that are not completely compat- 
ible with XB ASIC, but the differ- 
ences are mostly due to the processor 
differences. For example the USR 
function can't be the same. I won't 
elaborate in gieat detail because most 
of the differences are in things 
generally not used extensively in 
BASIC programs. I've urged Bob to 
add a few new features to RBASIC 
that will be extensions and will not 
destroy compatibility with old 
XB ASIC programs. For example, 
when XB ASIC first was done and I 
looked at it, I was disappointed to 
find a couple of the nice features of 
Bob Uiterwyk's old BASIC missing. 
To write three data items to a file, 
separated by commas, for example, 
in ihe old BASIC one simply had to: 

100 WRITE #1, A,B»C 



TSC's BASIC was made compat- 
ible with a BASIC from DEC, and it 
lacks the WRITE statement com- 
pletely. Instead, as you BASIC users 
know, you had <o: 

100 PRINT il, A;*,-;S;*,-;C 

That is, you have to explicitly code 
the printing of the commas between 
the data items. I can certainly see 
having the PRINT statement work 
ihe same way to a file as it does to a 
printer, but there needs to be an 
easier way to write data to a file. 
Bob indicated that he may well be 
interested in a number of enhance- 
ments in the future. The other thing I 
have always thought was missing 
from XBASIC is some sort of end of 
file test for input files. 

90 INPUT ll,A$<N%> 

100 IF EOF(l) THEN 120 

105 N%-N%+1 

110 GOTO 90 

120 CLOSE 1 

Rather, with XBASIC you 
have to trap errors and test to see if 
ihe error is #8. 

10 ON ERROR GOTO 1000 



90 INPUT fl,A${N%) 
100 N%«N%*1 
110 GOTO 90 
120 CLOSE 1 



1000 IF ERR-9 AND ERL-90 THEN RESUME 
120 ELSE ONERROR GOTO 



68 Mcro JounaJ 



February *89 



13 



If you had a program wilh a number 
of files thai could reach end of file at 
various places within the program, 
you would have to have a number of 
lines or "cases" for ERR, the error 
number and ERL, the line on which 
ihe error occurred, wilh different 
RESUME lines, and a catch all 
ONERROR GOTO at the end so 
that other errors than end of file will 
be reported properly when debugging 
the program. It has always seemed to 
me as though BASIC should provide 
such a function so the user doesn't 
have to build the error trap into even 
a simple program to read a data file 
and print the contents to the screen. 
On the other hand. I suppose we each 
have our little pet "It would only take 
a few lines of code to add..." feature, 
and if Bob were to add all of them 
RB ASIC would be big and cumber- 
some. Bob. I still hope you will add 
"mine". 



Assembler 



A few weeks have passed since I 
wrote the above. Bob Jones has fixed 
the few little bugs that 1 found in 
RBASIC and we are continuing our 
discussions of how to make the math 
more efficient. In fact, the floating 
point multiply routine has been 
improved to be about 4.25 times 
faster. I'll have to scrap the few 
benchmarks I've run so far and wait 
for things to settle down a Utile more. 
Let me say that this is a very com- 
plete BASIC having hill PRINT 
USING features, sequential and 
random file access, etc. Ill do a full 
review on it in the future. If you use 
BASIC for quick and dirty programs, 
exploratory programming, or solving 
problems that are very complex, you 
will want this BASIC. 



I received a call from a reader the 
other night, who had a few problems 
that might be common to some others 
of you who are just stalling out on 
the 68000 and are new to Assembly 
language. I will include a shoit 
listing of a program to set an Epson 
printer to the 132 column (16.7CPI) 
mode. There aie several things to 
point out about it. The caller's first 
problem was that he had written and 
assembled a short program but when 
he tried to nin it SK'DOS gave him 
an error message that said that there 
was no transfer address. The transfer 
address is the address in the program 
at which it is to begin to execute. 
The tiansfer address need not neces- 
sarily be the firet address in the 
program so the system needs some 
way of telling from the program code 
on the disk where to start executing 
the program relative to its first load 
address. To give it this information, 
ihe "start executing* 1 address of the 
program must have a label. In the 
case of listing I, it is the label 
START. Now at the end of the 
program the END statement tells the 
assembler that there is no more 
program to code. After the word 
END, you simply place the starting 
label, START in this case. When the 
program is assembled and saved to 
the disk as a binary file, the transfer 
address is coded into the file from 
this information. Otherwise, the code 
is treated as a fragment, perhaps part 
of another program that is to be 
accessed from elsewhere, and it has 
no transfer address, and so cannot be 
mnbySK*DOS. 



remember, does a HEXADECIMAL 
and ASCII dump of a disk file, sector 
by sector. I had used it primarily to 
dump binary files, but one day not 
too long ago. I decided to use it to 
look for something funny in a text 
file. I found that it exited after the 
first sector. I made a few changes 
and then found that it insisted on 
repeating the first sector 5 times and 
then went on to the next one. After a 
little hair pulling 1 discovered that it 
would foul up if there happened to be 
a TAB at the start of the sector. 



It is now about two weeks since 1 
wrote the above. I've been plagued 
by a lot of work at work and some 
chores that had to get done around 
the house. 1 recently found a bug in 
my DDUMP utility published here a 
few months ago. DDUMP, you may 



Text files in SK*DOS use a tech- 
nique called space compression. 
Rather than put 10 or 12 $20 (space) 
characters in a file, SK*DOS auto* 
matically compresses consecutive 
spaces by using a horizontal tab 
character $09 followed by a space 
count. If there are two spaces 
together, of course, you come out 
even, using two characters. How- 
ever, any number from 3 to 255 
spaces can be compressed to two 
characters by this method. What I 
eventually figured out, is that the 
FSKIP function of SK*DOS doesn't 
perform its function if FREAD has 
gotten the system into the middle of a 
space expansion while reading the 
file. FSKIP is supposed to skip the 
remainder of the current sector so the 
next sector will be read on the next 
FREAD call. It worked fine except 
when in the middle of a space 
expansion. 1 decided to tell SK*DOS 
not to expand spaces, since 1 wasn't 
using the read function to get the 
data, but was taking it directly from 
the file control block. All that is 
needed is to stuff $FF into the 59th 
byte of the file control block after 
opening the file but before reading 
any data. While 1 was looking at it I 
cleaned up the code a little. The 
listing of version 2.0 is included here. 
Tve improved the error handling and 
napped error #8 as end of file. That 
error occurs when you try to read 



68 Mcro Journal 



past the last valid sector of a file. 
Essentially I have done what I was 
complaining about having to do in 
BASIC above. 

I have a few copies of the SK*DOS 
version of PAT, my editor out for 
testing. 1 have held off on distribut- 
ing it because I wanted to check it out 
personally on a PT68K-2 system 
using a monitor and IBM keyboard. 
From one source I hear how slow that 
system is compared to a terminal, and 
from another 1 hear how fast it is. I 
want to check it out for myself and 
perhaps write a driver that will allow 
some fancies on the screen. My other 
motive for this is that Dan Farns- 
wonh of Palm Beach Software has 
sent me his EDDI text editor that 
runs with this setup. I have ordered 
the monochrome board and IBM 
clone keyboard for my system. I 
have a monitor kicking around some- 
where, so I will be able to run the 
system in that mode and free up a 
terminal. Actually I have still 
another motive* that of the possibility 
of doing some graphics for my woik 
projects. That is a long term goal. 

I've been using RBASIC for 
several days to analyze some peculiar 
problems at work, and have not 
found any fuither bugs in it. It is nice 
to have a BASIC that runs on the 
68K systems for testing ideas and 
techniques for my woik projects. 
Along that line, I have a most pecu- 
liar problem with combinations of 
weights. Essentially I can have 5 
different weights but I can use only 
three or less weights at any one time. 
I can use one of the weight values 
repeatedly as in 122 etc. The 
problem is to cover the greatest range 
of weight in unit steps with various 
combinations of these weights. I 
found a set consisting of 1, 2, 3, 7, 
and 18 that would let me make 
combinations of three or less weights 
for values from 1 to 28 with no 
values skipped. Many of the combi- 



nations are redundant, and I would 
guess that thcie would be other sets 
that might span a laiger range. I am 
perplexed that I could find no logical 
approach to calculating the best set of 
weights. Of course if there were not 
a limitation on the number of weights 
a simple binary piogression would do 
the job. 

In a similar problem I have 6 
weights to be taken 1 2 or 3 at a time. 
I came up with 1, 2, 3, 7, 1 1, and 26, 
which gets me to 40 in steps of 1 . 
Are there any mathematicians or 
logicians out theic who can give me a 
clue as to how to appioach this 
problem to get the largest coverage 
from a given set of weights? A set of 
7 taken 3 at a time get me from to 
52. They are 1.2,3.7,11, 15. and 
34. If any of you can figure out a 
good scries that will go fanher in 
continuous steps of 1 I'd like to hear 
about it The matter is now academic 
because of other limitations on the 
problem, but it is still of interest. 

Last Minute News 

I just received a new version of 
RBASIC in which the floating point 
divide has been speeded up by more 
than a factor of 2, and the display of 
integer numbers has been cleaned up. 
The original had a pioblem if the user 
specified too many digits for display. 
It would sometimes display with a 
slight conversion error showing 
15.99999999999999978 rather than 
the actual value of 16 for example. 
Bob has cured that problem in this 
latest version as well. 

I just returned from a vacation trip 
with my wife to New Zealand with a 
stop in Hawaii on the return trip. We 
visited John Spray in Auckland and 
did a whirlwind tour of the country, I 
can say that it is tiuly a beautiful 
place. We thoroughly enjoyed our 
visit there. I had the opportunity to 



drive a right-hand drive vehicle on 
the left side of the road. That wasn't 
as difficult as it might seem, but I did 
have a hard time with the manual 
transmission shift lever on the left 
and turn signal on the right. I kept 
trying to shift gears with the turn 
signal. We found a strange mixture 
of prices. Gasoline (or Petrol) costs 
about twice what it does here in the 
U.S. but a good dinner in a restaurant 
about half as much. 

More to the point of this column, 
John and I visited several computer 
stores while we were there. Most of 
ihem are just like Computerland and 
their clones with slick equipment 
setups and sales people to tell you all 
about the advantages of their prod- 
ucts. We did visit one that was 
explicitly for the "hacker". They had 
computer boards laid out on tables 
and very low prices. We found out 
that many of the boards were not in 
working condition and a purchaser 
could either buy a tested one at a 
much higher price or buy two or 
three in hopes of getting one that 
works or can be fixed. There were 
also quantities of used disk drives 
and the like for sale under the same 
terms. I'd say that computing there 
has gone pretty much down the IBM 
and clone road just as it has here. 
Outside of the industrial control area 
there is very little else around. 

Well, the trip has taken three weeks 
of my time so this material is about to 
be late. Larry Williams called this 
morning to see if I had any material 
ready to mail in, so I guess Til run 
this through the appropriate conver- 
sion program and add the two listing 
files to a disk so it can be mailed on 
lime. 



68 Wcio Journal 



February '80 



IS 



ft***************************************** 

* DISKFILS DUMP PROGRAM 

* 

* COMMANDS: 

* N XXXX NEXT PAGE TO BE DUMPED 

* B BACK A SECTOR 

* F FORWARD A SECTOR 

*** + ***+"** + * ****»*#** + + ** + *** +*#**# ****** 

* SK*DOS / 68K EQUATES FOR USER PROGRAMS 



0000A029 


GETCH 


EQU 


$A029 


0000A023 


GETNAM 


EQU 


$A023 


0000A024 


DEFEXT 


EQU 


$A024 


0000A005 


FOPENR 


EQU 


$A005 


0000A001 


FREAD 


EQU 


$A001 


0000A011 


FSKIP 


EQU 


$A011 


0000A031 


TOUPPR 


EQU 


$A031 


0000A02F 


HEXIN 


EQU 


$A02F 


0000A03A 


OUT2H 


EQU 


$A03A 


0000A03B 


OUT4H 


EQU 


$A03B 


0000A03C 


OUT8H 


EQU 


$A03C 


0000A034 


PCRLF 


EQU 


$A034 


0000A037 


PERROR 


EQU 


$A037 


0000A036 


PNSTRN 


EQU 


$A036 


0000A035 


PSTRNG 


EQU 


$A035 


0000A033 


PUTCH 


EQU 


$A033 


0000A000 


VPOINT 


EQU 


$A000 


0000A01E 


WARMST 


EQU 


SA01E 



Get input character with echo Xflts) 

Get filename into FCB 

Set default extension 

Open file for read 

Read a byte 

Next Sector 

Conv't char in D5 to Upper Case 

Input hexadecimal number 

Output 2 hex digits 

Output 8 hex dibits 
Print CR/LF 

Print string {Without CR/LF) 
Print CR/LF and string 
Output character 
Point to SK*DOS variable area 
Harm start 



000000 


A000 




START 


DC 


VPOINT 


000002 


284E 






MOVE.L 


A6,A4 


000004 


A023 






DC 


GETNAM 


000006 


6500 


0090(00098 




BCS 


HELP 


00000A 


7801 






MOVE.L 


#1,Q4 


oooooc 


A024 






DC 


DEFEXT 


00000E 


A005 






DC 


FOPENR 


000010 


197C 


OOFF 003B 




MOVE.B 


#$FF,59(A4) 


000016 


A001 




LOOP 


DC 


FREAD 


000018 


6618 


(00032 




BNE.S 


ERROR 


00001A 


204C 






MOVE.L 


A4,A0 


00001C 


D1FC 


0000 0060 




ADD.L 


196, AO 


000022 


611C 


(00040 




BSR.S 


OP AGE 


000024 


A029 






DC 


GETCH 


000026 


A031 






DC 


TOUPPR 


000028 


0C05 


0045 




CMP.B 


#'E' ,D5 


00002C 


6710 


{0003E 




BEQ.S 


EXIT 


00002E 


A011 




CONTIN 


DC 


FSKIP 


000030 


60E4 


{00016 




BRA 


LOOP 


000032 


0C2C 


0008 0001 


ERROR 


CMP.B 


#8,1(A4> 


>000038 


6700 


0004 (0003E 




BEQ 


EXIT 


00003C 


A037 






DC 


PERROR 


00003E 


A01E 




EXIT 


DC 


WARMST 



GET POINTER 
FCB POINTER 
GET FILENAME 

CODE FOR -TXT 



SET NO SPACE COMPRESSION 



POINT AT SECTOR INFO 



IS END OF FILE? 



* ROUTINE TO OUTPUT A PAGE IN HEX AND ASCII 



000040 


A034 




OP AGE 


DC 


PCRLF 




000042 


4240 






CLR.W 


DO 


LINE COUNTER 


000044 


A034 




* LOOP 


DC 
FOR LINES 


PCRLF 




000046 


323C 


000F 


LLOOP 


MOVE.W 


#15, Dl 


COUNTER FOR CHARACTERS 


00004A 


1800 






MOVE.B 


D0,D4 




00004C 


£904 






ASL.B 


#4,t>4 


ADDRESS OF FIRST BYTE OF 


00004E 


A03A 






DC 


OUT2H 




000050 


183C 


0020 




MOVE.B 


#$20, D4 




000054 


A033 






DC 


PUTCH 


SPACE 


000056 


A033 






DC 


PUTCH 


SECOND SPACE 








* INSIDE LOOP FOR 16 CHARACTERS 


IN HEX 



000058 1818 
00005A A03A 
00005C 183C 0020 



LINE 01GE 



CLOOP MOVE.B lA0)+,D4 
DC OUT2H 
MOVE.B l$20,D4 



OUTPUT FIRST BYTE 



16 



February "89 



66 Micro Journal 



000060 A033 

000062 57C9 FFF4<00058 



000066 
00006A 
00006C 
000072 
000076 
000078 
00007C 
000080 
000082 
000086 
000088 
00008C 
00008E 
000090 
000094 
000096 



183C 
A033 
91FC 
323C 
1818 
0244 
OC04 
6C04 
183C 
A033 
57C9 
A034 
5240 
0C0O 
66B0 
4E75 



0020 

0000 0010 
OOOF 

007F 
0020 

{00086 
002E 

PFEC(00076 



0010 



{00046 



DC 
DBEO 

• NOW DO ASCII 
MOVE.B 
DC 

SUB.L 
MOVE.W 

ALOOP MOVE.B 
AND 
CMP.B 
BGE.S 
MOVE.B 
DC 

DBEO 
DC 
ADD 
CMP.B 
BNE 
RTS 



AL1 



PUTCH 
Dl.CL P 
CHARACTERS, 
•$20, D4 
PUTCH 
116, A0 
•15,01 
<A0)+,D4 
♦$7F,D4 
•$20, D4 
AL1 

• ' .',04 
PUTCH 
01,ALOOP 
PCRLF 
II, DO 

• 16, DO 
LL P 



SPACE 

CHARACTERS 
FOR NON PRINTABLE 

EXTRA SPACE BEFORE ASCII 

RELOAD COUNTER FOR CHARACTERS 

MASK OFF HI ORDER BIT 

IS IT PRINTABLE? 

IF YES 

ELSE PRINT PERIOD 



NEXT LINE 



000098 49FA 0006{000AO HELP LEA HLPMSG (PC) , A4 
00009C A035 DC PSTRMG 

00009E A01E DC WARMST 



0000A0 5379 6E74 6178 HLPMSG DC.B 

DC.B 
DC.B 
DC.B 
DC.B 
DC.B 
DC.B 
DC-B 
DC.B 
DC.B 



0000D2 


61 6E 


6420 


2E54 


0000E8 


4444 


554D 


5020 


00011C 


6174 


2061 


2074 


000157 


7468 


6520 


4153 


00018D 


7072 


696E 


7461 


0001BD 


4174 


2074 


6865 


0001F5 


7365 


6374 


6F72 


00022C 


7072 


6576 


696F 


00025F 


4620 


7768 


65 6E 



"Syntax: DDUMP FILENAME Defaults are wiaicve", SOD, $0A 

*and .TXT extension. ",$OD, $OA, $OA 
"DDUKP dumps a disk file to the terminalsotor*, SOD, $0A 
"at a time. The dump displays 16 bytes in HEX followed by*,$0D,$0A 
"the ASCII representation of the same 16 bytes. Non-*, SOD, $0A 
"printable characters are displayed as periods .*, SOD, SOA 
"At the command prompt, P will cause the(ftKDAard) *, SOD, SOA 
"sector to be displayed, and B (back) will dispta*', SOD, SOA 
"previous sector. E will Exit the progr«H 1ft, SOD, SOA 
"F when the last sector of the file has t».iched . " t SOD, SOA, $04 



ERRORS DETECTED 



END 



START 



* PROGRAM TO SET EPSOM TO 16 CPI 





OOOOA033 


PUTCH 


EOU 




SA033 




0000A000 


VPOINT 


EOU 




SA000 




0000A01E 


WARMST 


EOU 




SA01E 




00000CCB 


DEVOUT 


EOU 




3275 


000000 






ORG 




$0000 


000000 


A000 


START 


DC 




VPOINT 


000002 


1D7C 0002 OCCB 




MOVE 


.B 


•2, DEVOUT (A6) 


000008 


183C OOOF 




MOVE 


.B 


#S0F,D4 


oooooc 


A033 




DC 




PUTCH 


00000E 


1D7C 0000 OCCB 




MOVE 


.B 


•0, DEVOUT (A6) 


000014 


A01E 




DC 

END 




WARMST 
START 



ERRORS DETECTED 



FOR THOSE WH 




68 MICRO 
JOURNAL 



TM 



66 Micro Journal 



February "89 



17 






Looi© 



Most of you will remember 
Bob from hi* series of leuers 

on XBASIC If you like it or 
wint more, let Bob or u* 
know. We w«nl lo &ive you - 

what you want! 




peaking 



The Mathematical Design of Digital Control Circuits 

By: R.Jones 

Micrortics Research Corp. 

33383 Lynn Ave., Abboisfond, B.C. 

Cinida V2S IE2 

Copyrighted Q by R. Jones & CPI 



SOLUTIONS TO TEST FOURTEEN-A 





> 



c 
1 


z 


o 





1 




IL 1 


2 


3 


1 


SI 2 


2 


- 


1 


2L 3 


- 


4 




JL * 


S 


- 


1 


53 5 


s 




1 





; 

1 


< 
1 


2 








I 




1 


2 


3 


l 


2 


2 


- 


i 


3 


- 


2 





Confine 2>ȣ 



6 contacts 
<? sprites 

C<0 



Operated 


Gd* 


* 




K 
1 











1 


IL 


1 


2 


3 


SI 


2 


2 


i 


IL 


3 


- 


Ur 


3L 


4 


5" 


- 


S3 


5 


5 


1 





> 

o 


C 
1 


Z 








1 




I 


2 


3 


1 


2 


2 


1 


1 


3 


- 


4 




k 


2 


- 


1 



13 sp^nqs 

to 



Combine 2 ,5 



Relays 


Ode 


> 




1 


z 











1 


1 


IL 


J 


2 


3 


1 


2>1 


2 


2 


I 


1 


2L 


3 


•* 


f 




3L 


fr 


5" 


«rt» 


1 


S3 


5 


5 


1 


1 1 





> 




[ 1 


Z 








1 


1 


1 





2 


1 


2 


- 


3 




3 





- 


1 



6 contacts 
iO SprifxjS 

(c) 



0>mWne 0,2^ reamer 3, J*-* 1,3 



18 



February 89 



68 Micro Journal 



Relays 
UNop«»WJ Ck 


X 

I 


z 





1 







IL 1 


2 


- 




2L 2 


- 


3 


I 


S2 3 


- 


3 


1 1 



1 


X 

_0J 1 


Z 





1 







1 


2 


- 




2 


- 


2 


1 



4 Contacts 

6 springs 

to 



Combine 2,3 
Be careful here! Note that we're keeping track of the number of UNOFER ATED relays. 



Operated CcAe 


> 



< 
1 


Z 








1 




IL I 


2 


3 


1 


SI 2 


2 


- 


I 


2L 3 


U 


- 


I 


S2 * 


h 


- 


I 





> 




1 


z 








1 




1 


2 


2 


I 


2 


2 


i — 


1 1 



3 corXads 
5 Springs 

0) 



Combine 2,3, **■ 

This is the inverse of the specs, and should be graphically complemented to give ihe desired output conditions. NOTE : Line-1 
needs no contacts. 



felajs 
Operated 


Cok 





X 

t i 











i 


IL 


J 


2 


3 


51 


2 


2 


<t 


2L 


3 


5 


6 


SI +IL 


k 


- 


7 


S2 


S 


5 


8 


3L 


6 


2 


6 


SI + 2L 


7 


1 


- 


S2 -rlL 


8 


<? 


10 


51 +S2 


«? 


1 


- 


S2 + 2L 


10 


- 


11 


S3 +3L 


II 


q 


it 





> 




i 

I 


z 








i 




1 


2 


3 




2 


2 


fr 




3 


5 


6 




4 


- 


7 




5 


5 


8 




6 


2 


6 




7 


7 


- 




8 


7 


q 




<? 


- 


10 




10 


7 


10 





Kl contacts 
2^Sprinqs 

a) 



Remnber 10,11-^,10 



NOTE : In line-6, column X=0. I've not opened up a line for S3, because this circuit is interested in sets of TWO only. Any other 
size is all the same to this network, so I can save myself a lot of work by naking all sets larger or smaller than TWO take on the 
same name, namely SI , which I now choose to interpret as "One set of any size except TWO* 1 . Similarly in Line- 1 1, 

If you attempted each and every one of the above, especially ihe last live (which are reasonably tough), you should have a really 
good idea how to create iterative tables by now! Ihey were good practice, anyway! So, if everyone's ready, let's lode at a final 
high-powered technique for manipulating a prototype table. 

Mile 18 -heading for Mile 19 



68 Moo Journal 



February 89 



!9 



ITERATIVE NETWORKS (Continued) 



MULTIPLE ASSIGNMENT 



In our earlier study of iterative netwoiks we've always produced a prototype cell with one input-line for power, which is switched 
from one level to another as it proceeds through (he cascaded network. Eventually, if it's not cut off along the way, power arrives 
at one or more output-lines which arc connected together. 

Let's pretend we've developed a (able which switches between eight different levels, numbered from through 7, where each level 
represents a different piece of info being passed from one relay to the next along our chain of "n" relays. I don't think I'm far 
wrong when I say that all of you know that eight different numbers (or data-codes) CAN be transmitted in binary along only 
THREE wires, instead of the EIGHT original lines. This is just what we're going to attempt in our final session with iterative 
networks. We're going to "code" our info, using multiple line assignments, instead of our usual "one line = one piece of info". Of 
course we're going to this scientifically, and develop codes which won't create any conflict one with the other. And just so we can 
tell whether "multiple" coding of a table has produced any improvement over "single" coding, we obviously have to have some 
standard of comparison. 

SPRINGS AND CONTACTS 

Ihis will be based on the number of "springs" and "contacts" in both implementations. You already know what a "contact" is, so 
I'll simply define a "spring" as a terminal on a ic lay-contact to which a wire can be connected. An ordinary NO-contact or NC- 
contact has TWO springs, because two wires can be connected to it, one at each end of the contact. A transfer-contact, on the other 
hand, has THREE springs, because one wire can be fastened to the common centre-point, and one each to the NO and NC contacts 
between which it can be switched. 

So without further ado, let's get on with a new set of specifications with a slightly different twist to vary our diet a little, and 
compare the two methods of assignment Here then is 

ITERATIVE NETWORKS - MULTIPLE ASSIGNMENT - EXAMPLE 1 

We're called on to design the prototype cell for a network of "n" relays whose output-line is normally powered-up, but which has 
to shut off iff exactly ONE set of TWO relays becomes operated. 

This time I don't think you'll need a step-by-step explanation of the table shown in Diagram 96a, especially if you take time out to 
actually create it yourself. Just a brief pointer to the Z-column, where you'll notice that we're calling for power in all lines except 
where the set of 2 relays is formed. The normal table is necessary as the first step in our new procedure, and I've already drawn the 
prototype cell in 96b for comparison purposes later. 



Operated 


CoU 


) 



< 

1 


z 











1 


I 


IL 


i 


o 


2 


i 


2L 


2 


- 


3 




3L or more 


3 





3 


1 



t>) 




Diagram 96 

If we look at the network, we see that X has a total of seven contacts, which, when grouped to form transfer-contacts, require 
eleven springs to form the circuit <■ - 3 transfers of 3 springs each, and 1 NO-contact of 2 springs. With me so far? Good! 
Note that our prototype table shows than an output is required for lines, or states, 0, 1 and 3 (which is why outputs 0, 1 and 3 are 
joined together in 96b), and it's at this point that we begin our multiple assignment coding. 



20 



February *B9 



66 Micro Journal 



CREATING A MULTIPLE-ASSIGNMENT PROTOTYPE TABLE 

This begins with Diagram 97a, where our original "Code" column has now been moved out to the extreme left Keep in mind that 
Z calls for an output in lines 0, 1 and 3 - highest number therefore being "3" - so evexy wheie thai 0, 1 or 3 appears in our original 
table (in the "code" column or either of the X-columns) we're going to write "3" (the highest number called by Z). 







1 5 



< 
1 





3 


3 


3 


1 


5 


3 




2 




- 


3 


3 


3 


5 


3l 



(«) 










> 

1 





23 


25 


3 


1 


3 


23 


2 


2 


2 


- 


23 


3 


23 


23 


23| 







* 

1 


1 





23 


23 


I 3 


1 


1 3 


2J 


\1 


2 


12 


— 


123 


3 


125 


25 


123 



0>) 



CO 







> 




1 





23 


023 


01 3 


1 


01 3 


OZ3 


0>2 


2 


012 


- 


0123 


3 


0123 


023 


10123 



(a) 





> 




1 





- 


01 


1 


- 


2 


2 


- 


3 


3 


023 






<& 




Diagram 97 



The procedure we're going to follow isn't difficult, but we MUST be careful not to make any mistake as we go along. It's a 
continuous repeat of a veiy simple step, so stay close and it'll all come out OK. Still with 97a then, we've just set out a new 
coding, both in the "Code" column and in both internal columns, and at the moment it seems that we have 3s everywhere. Now, 
treading very warily, let's look at column X=0 and ask ourselves "For eveiy 3 in this column, is there a consistent digit in the code- 
column?*' We see that this IS so, namely that for every 3 in this column there's a 3 externally in the code-column. OK then, let's 
move to the X= 1 column and ask the same question. Ihis time we have to answer **No", because, although the 3s in lines and 3 
both line up with an external 3, the 3 in line-2 doesn't even HAVE an external number* let alone one which is the same for ALL the 
3s in this column. 

ADDING CODE-2 

We'll rectify this situation at once, by inserting IN THE CODE-COLUMN the next lowest number (ie, 2) directly opposite the 3s 
in column X=l (see Diagram 97b). So now we DO have a consistent number which lines up with ALL our 3s - - namely, an 
external 3 lining up with the 3s in column X=0, and an external 2 lining up with the 3s in column X*l. Note that we keep these 
external numbers in neat columns! Now the at the far left corresponds to code-23 in the codc<olumn, so eveiy where there's a 
in the original internal columns, we MUST ensure that it gets changed to 23. Similarly, far-left-l * s code is unchanged at code-3, so 
we leave this untouch*) in 97b*s internal columns. Far-left-2 corresponds to code-2 now, so original internal 2s, of which there's 
only one, gets recorded as 2 in 97b, and finally, far-left-3 corresponds to code-23, so all original interna) 3s get changed to 23. This 
completes the compilation of table 97b. 

Having just added 2s all over the place, we must now concentrate on this figure. As before, beginning with column X«0, we ask 
our standard question, only this lime we'll ask it about the 2s in 97b. And what do you know? The 2s in the X=0 column DO have 
a consistent external figure lining up with them, namely the 3s in the code column. Ho hum! Let's move to column X»l instead, 
and repeat our question. Tlie answer has to be "No", because the first and last 2s in this column line up with an external 3, while 
the lower two 2s line up with an external 2. No consistent line-up at all! ! 



68 Micro Journal 



February 89 



21 



NOW FOR CODE- 1 

Noihing for il but lo FORCE an alignment, and ihcrcby create 97c, by entering Is in the code column to line up with the 2s in 
column X=l. This means lhai we have to amend our INTERNAL codings too! Only codes 1,2 and 3 got changed ihis time, so 
let's begin with far-left 1 and corresponding codc-13, which iclls us to change our original internal Is to 13. Similarly far-lcfl-2 
causes original 2s lo be replaced with 12, and far-left-3 causes original 3s to become 123. And that's 97c done! 

AND FINALLY CODE-0 

Now to process ihe internal Is. Column X=0 doesn't have any. so there's no problem there, but column X=1 has Is running all the 
way from top to bottom. Nowhere is there a SINGLE, consistent, external figure in ihe code-column to line up with these four Is, 
so let*s FORCE it once more by putting the next lowest figure (ic, 0) in ihe code-column (sec 97d), and just as before we*tl update 
the table internally. For example, far-left-0, code-023, tells us to replace all original internal 0s wiih ihe code 023. and so on for the 
rest of the lable. Final check of 97d coming up! "In column X=0, do our 0s line up consistently?*' YES, they do, with the 3s in ihe 
code-column. A check of column X= 1, of course, shows internal 0s lining up consisiently with external 0s. So we've come to the 
end of the process, having now successfully coded our original lable into a multiple assignment form. 

Don't relax just yet though! There's more to come before we can draw our multiple-assignment prototype!! We must first convcit 
97d to what's known as a "lerminal connection table", ihe procedure again being simple and straightforward, thank goodness! See 
97c to follow my explanation. 

THE TERMINAL CONNECTION TABLE 

Here we'll begin with the skeleton of a prototype-table, wiih just the far-left codes of 97d in ihe code-column. Next, we're going to 
be looking from the viewpoint of the code-column of 97d INWARDS to its X-tablc. Let me elaborate! We'll start with the 0s in 
97d*s code-column, and ask "What figurc(s) in 97d*s X=0 column docs consistently line up with?" As ihcrc are four external 0s, 
ihcre is NOTHING in column X=0 that lines up wiih all four, so we enter a "-*' in 97e in column X=0 in line with the in ITS 
code-column. Back to 97d, to ask ourselves "And what docs an cxicmal-0 line up with consistently in the X=l column?" Here il 
lines up with 01, so in 97c in ihe X=l column we write 01 to line up with extcmal-0. 

Now for the Is in 97d's code-column. They line up with noihing in X=0, so we enter a "•" in 97e's X=0 column opposite codc-1. 
These external-Is line up CONSISTENTLY only with the 2s in column X=l, so ihis is what we record in 97e's X=l column 
opposite codc-1. Similarly, we record the fact that 97d's cxtcmal-2 lines up wiih nothing in column X=0, but wiih 3 in column 
X=L 

LET'S THINK A LITTLE ABOUT SOME OF THE CODES 

Finally we record ihe fact that 97d's external code-3 lines up consistency with 023 in column X=0. but, BECAUSE WE HAVE AN 
EN1KY IN COLUMN X=0, in the case of the X=l column we'll do a little bit of ihinking first. First let's observe thai although 
97d's cxtcnial-3 lines up consistently wiih inlemal-01, the reverse cannot be said to be true, namely, intcrnal-23 doesn't consis- 
tency line up with extemal-3. Under these circumstances, where a line-up only half-complies, we arc free to enter 0, 1 , 01 or 
noihing at all in 97c's last remaining slot. Which shall we enter to give us ihe best advaniagc? Now's the lime to remember an 
earlier mle about prototypes, which said that if the same entry appears in BOTH X-columns then no contacts are necessary, a 
straight wire-connection being sufficient. With Ihis mlc in mind, our choice is obvious! We'll insert a in ihis location, to go wiih 
the in ihe X=0 column. 1 is no use to us, as it would only mean an extra contact. 

Sometimes we can complete our connection lable a little more quickly by filling in all the ">"s first, if ihere ARE any in the 
multiple-assignment lable developed. For instance, in 97d, there's a "-" in column X=0 opposite codc-012, so we could right away 
(in our connection lable) put a "-" in rows 0, 1 and 2 in column X=0 f which would leave only one slot to be completed in this 
column, plus, of course, we'd have lo do column X=l. No "-"s in column X=l, so we can't lake a short cut there. This method 
could save some time, and possibly a lot of checking of external codes against internal ones. 

DRAWING THE PROTOTYPE CELL 

Wiih the lerminal connection lable all complete, we're ready lo draw ihe prototype at last! This is shown in 97f, the interpretation 
being the same as before, namely, input- line goes nowhere via a NC-coniact, but goes lo both terminals and 1 via NO-contacts. 
And so on for the rest of the lable, noling that input-line 3 goes to output- lines 2 and 3 via NC-contacts, but lo output-line»0 via a 
direct connection (as appears in boih columns). As far as power input is concerned ... remember it always came in at input-line- 
0? Our multiple-assignment lable in 97d shows that our old codc-0 now corresponds to code-023. so we connect power to input- 
lines 0, 2 and 3 of our first cell. Power-output is ALWAYS taken off at the highest-numbered output-line only, in our case output- 
line-3. 

22 February '89 68 Micro Journal 



Observe thai our new prototype cell only requires six contacts and ten springs, compared 10 the original seven contacts and eleven 
springs. In view of ail the work we've just done, you may feel that this isn't much of a saving, but always remember ... this is how 
much we save PER CELL, so if we had 199 relays in the chain we'd have saved 199 contacts altogether, PLUS the necessary 
wiring!! Sometimes the work doesn't save anything at all, and we just end up wiih a DIFFERENT circuit performing the same 
function as before. Only one thing is reasonably certain - we won't require MORE contacts or springs! 
Here's an example which shows how big the saving in contacts can really be! 

ITERATIVE NETWORKS - MULTIPLE ASSIGNMENT - EXAMPLE 2 



Ihe specs call for a prototype cell to be designed for a circuit of "n" relays which will give a continuous output, UNLESS two 
consecutive sets are separated by more than one UNOPERA1ED relay, in which case the power gets cut off. 
You're so good at this stuff now, that I don't think a detailed description will be necessary, and you should be able to feel your way 
through the problem with ihe aid of the lablcs of Diagram 98 alone. I will, however, get you started on the first multiple-assign- 
ment table of 98c. This is compiled by writing our original codes to the far-left, then, noting in 98a that Z has an entry for all codes 
0, 1, 2 and 3, we enter the highest of these numbeis (ie, 3) in all locations in 97c where 97a has 0, 1, 2 or 3, whether in the code- 
column or in the interna) lable. 



Operated Unop 


Code 


> 




' 1 
1 


z 











1 


1 


I 4" 


1 


2 


1 


I 


1 + I 


2 


3 


1 


I 


I + overl 


3 


13 


- 


1 



"7 contacts 
ll Springs 



•*§ X<^ ®, 







> 



f 

' 1 





3 


3 


3 


1 


3 


3 


3 


2 


3 


5 


3 


3 


3 


3 


- 







> 




i 





23 


23 


23 


1 


23 


23 


23 


2 


23 


3 


23 


3 


3 


3 


— 



ft) 



kf) 







1 •-- 


1 





0123 


0123 


123 


\ 


123 


23 


123 


2 


23 


3 


123 


3 


3 


3 


- 



« 








X 

1 





123 


123 


123 


1 


123 


23 


123 


2 


23 


3 


123 


3 


3 


3 


- 



fe) 





X 
1 1 





01 It 


1 


2 


I 


2 


3 


123 


3 


3 


- 



<9> 





\s> — # 



4- contacts 
6 springs 



-*- 



Diagram 98 



6$ Merc Journal 



Febr uary 80 



On second thoughts, maybe I WILL talk you through ihe construction of Diagram 98g from 98f. First, we'll tackle the 4i -"s by 

noiing that we have one in 98f, unluckily for us only opposite code-3, so in 98g*s code-3, column X= 1 we insert a *v\ OK, now to 

98fs code-column, commencing wiih 0. Ihis lines up with 01 in the X=0 column, so this is what we record for 98g*s codc-0 in 

column X=0. Now, in 97fs X=l column, lines up with 123, BUT THE REVERSE ISN'T TRUE, as 123 tines up with oiher 

rows as well. This means we can pick and choose here, so we'll select only the 1 of 123, to change the 1 already in the X=0 

column into a simple wire-connection. 

Looking at 98fs externa)- 1 we note that it DOES consistently line up with 2 in column X=0, so let's record this in 98g. Again we 

have a situation similar to that for our 0-row, namely, code-1 lines up with 123 in column X=l, but not in reverse, so we're free to 

pick and choose here too. So let's select the 2 of 123 for 98g*s column X= I, to go with (he 2 in column X=0. 

Coming now to 98fs code-2, we note thai it, too, only half-complies. That is, although it lines up with 3 in column X=0, intcmal-3 

doesn't consistently line-up with extemal-2, so let's withhold judgment for a moment while we look at column X=I , No doubt at 

all here, 2 lines up with 123, which we record in 98g's column X= 1. And so, of coarse, we have no option but to put our 3 in 

column X=0 in order to neutralise the 3 in column X= L OK? 

Finally, in 98f, extemal-3s line up with internal-3s in column X=0, and we end up by recording this fact 

When we come to power up our prototype in 98h, we observe that, according to 98f, our original code-0 is now code-0123, so we 

connect power to input-lines 0, 1 , 2 and 3 of our first prototype cell in the chain, and connect our output-device to output-line 3 of 

tltc final cell, this being the highest code-number 

RE-ARRANGING THE CONTACTS IN A PROTOTYPE CELL 

Observe how I've shuffled around the contacts of our prototype to form a new cell in 98i. Because input-line-0 is connected 
DIRECTLY to output-line I, it doesn't matter in theory whether one end of the upper NC-contact is connected to inpuMinc-0 OR 
to output-line- 1, AS THEY'RE THE SAME POINT ELECTRICALLY. In actual piaclice though it makes a tremendous differ- 
ence, as I can now use a single transfer con tact with its centre-point connected to output-line- 1. Similarly, 1 can transfer one end of 
the NOcontact on input-line-2 so it connects instead to output-line-3. to produce another transfer-contact. 
Alternatively, commencing once more with 98h, 1 could equally as well have shifted the end of the NO-contact from output-line- 1 
to input-linc-0, to fonn a transfer with its centre on input-line-0. And ihe end of ihe NC-contact presently connected to output-line- 
3 COULD have been shifted to input-line-2. Or any combination of all these shufflings around! 

Now for the big sinprise! If we count the number of contacts and springs in our new prototype, we find that we've reduced the 
original 7-contacts/l 1-springs to a VERY compact 4-coniacts/6-springs!! A substantial saving indeed! Especially when you 
consider that we can now use smaller-sized relays. And only six wires going to each relay instead of the original eleven!! So you 
see, it IS worthwhile to try multiple-assignment if you're into iterative networks at all. 
In fact, it's such an interesting technique, that I'd now like you to do 

TEST FOURTEEN-B 

Commencing with the regular prototype lables of TEST FOURTEEN- A, convert them to multiple-assignment tables, and compare 
ihe original contact/spring rating with the new. 

CHIT-CHAT TIME AGAIN 

And that, I'm afraid, is just about all I can tell you about iterative networks. This siage of our journey is a fairly critical one, as the 
next few miles are likely to be a little rough, though 1*11 TRY to explain things as simply as 1 can. If you can push your way 
through that stretch of jungle, you'll not only have a DEEP understanding of some of the most powerful aspects of network design, 
but will know a LOT better what Boolean Algebra IS and what it ISN'T. However, just in case it all proves a little too much for 
the lesser-experienced of you, I've arranged for helicopters to lift you over this stretch, and deposit you in a jungle holiday-camp 
where you can swat mosquitoes, relax, swat mosquitoes, bask in the sunshine, swat mosquitoes, etc., until I and your more fool- 
hardy companions catch up to you again. In oiher words, you can skip the next few sections, dealing with Boolean matrices (of all 
ihings), if you wish! I'd recommend ihough that you come with us for a little way at least! 

... End of Mile 18. At Mile- 19 marker, wondering just what sort of creepy-crawlies and other unmentionables lie waiting in the 
jungle ahead. Shudder! Shudder! Not that I'd want you to lose any sleep over it. Remember the helicopters! 




FOR THOSE WHOlMSmnlSMSi | 68 micro 

JOURNAL 



24 February 'BO 68 Mfcr o Journal 



INTERFACING TO THE 
MOTOROLA 88000 RISC 



With the recent introduction of the 
Motorola 88000 family of high perform- 
ance RISC architected ICs, a new era in 
performance oriented microprocessing 
has begun (refer 10 figure 1). Like many 
other performance oriented systems 
though, the performance of ihe 88000 
family is determined by many factors. 
These include factors such as the raw 
processing power of the cpu, the cpu 
architecture (Von Neumann or Har- 
vard), memory management, code/data 
cachingand the interfacing techniques to 
the user environment It seems that in 
many systems designs interfacing to the 
user environment does not receive the 
attention it deserves. In developing the 
architecture for the 88000 family , Mo- 
torola paid great attention to thisparticu- 
Iar aspect of the system design and devel- 
oped a new bus interface called the M- 
Bus. Prior to discussing the details and 
attributes of the M-Bus, a brief discus- 
sion of the 88000 family and philosophy 
behind the architecture will give the 
reader a better appreciation for the ap- 
proach used in the architecture of the M- 
Bus. 



CHIP SET 



BY: Tcny La well Jb Sang Quan 
MOTOROLA Inc. 

3501 Ed Bluestein Blvd. 
PO Box 6000. Austin, Tx. 78762 



The 88000 family of RISC devices 
includes the 88100 CPU which provides 
the integer and floating point processing 
power for the family and two 88200 
CMMUs which provide the memory 
management and data caching for the 
data and instruction code. The 88100 
uses a Harvard Architecture (totally 
separate paths for the instruction code 
and the data) for itsex ternal interface and 
is intended to interface directly to the 
CMMUs via the P-Bus interface. This 
interface is optimized for connection to 
the CMMUs to insure zero wait state 
access of code and data, but does not 
preclude the user from connecting the 
88100 directly to other memory or IAD 
devices. When connected to the 
CMMUs, the 88100 can support up to 4 
CMMUs on the code bus and A CMMUs 
on the data bus. The internal architecture 
of ihe 88100 is architected for pure per- 
formance (refer to figure 2). Ihe internal 



® 



MOTOROLA INC. 

architecture is organized into four inde- 
pendent execution units with their own 
separate pipelining capabilities. The 
88100 sporxs a completely synchronous 
bus interface with separate 32 bit data and 
address lines and operates at 20mhz. The 
cpu is capable of executing one 
instruction(including floating point) ev- 
ery clock cycle while concuirently load* 
ing or storing data at a rale of up to one 
word per clock cycle. With the configura- 
tion shown in figuie 2 Motorola can guar- 
antee ihe customer that as cpu clock 
speeds are scaled upwards, the CMMU 
speeds will be scaled to match. The 
88100 suppoits many more features than 
just those mentioned here, but the ones 
mentioned will give ihe reader at least a 
glimpse of what the 88100 is capable of 
providing. 

The 88200 CMMU provides the 
memory management and caching func- 
tions for both the data path and the code 
path. As mentioned earlier, a typical 
system would include two CMMUs, one 
on the data side and one on ihe code side 
of the cpu. The organization of ihe 



f> BUS ADDRfSS 



p bus iNsrnuctiON 



Ml 8**01} 
>N$1fl|JCIl0N 

rwMkii 



ik. 



3 



PflUS AQ0RISS 



P BUS OATA 



INSTRUCTION 

CMMU J 



o<> 



MUW700 

DATA 
CMMU 1 



OO 



MCM700 

DATA 
CMMU 4 



M6US 



MBUS 



S£ 



system memory 



Figure 1 System Block Diagram 



66 Micro Journal 



February '69 



25 



Figure 2 88100/88200 Block Diagram 




CMMU is quite modular and divided 
cleanly between the memory manage- 
ment and data caching functions (refer to 
figure 2). The memory management 
portion of the CMMU consists of two 
address translation caches which pio- 
vide the user with different levels of 
granularity foraddresshitdetection. The 
PATC (page address translation cache) 
provides the user with 56 entries each 
covering 4 kbytes of address space and is 
updated automatically on an ATC miss 



by table walks. The BATC (block ad- 
diess translation cache) has 10 entries 
that provide 512k bytes of address trans- 
lation each and are loaded and updated 
by software. The data cache portion of 
the CMMU, though a totally separate 
unit from the memory management unit 
(MMU), woiics in parallel with the 
MMU to provide a "no wait state" data 
caching function. The data cache is or- 
ganized as a 16-kilobyte four way set 
associative physical cache. To achieve 



the "no wait state" capability, the selec- 
tion of the data cache set is performed at 
the same time the MMU is doing the 
logical to physical address translation. 

In most environments, the CMMU 
acts as the users interface to the 88100 
cpu via the M -Bus interface. The remain- 
der of this article will discuss the details 
of the 88200 CMMU and the user inter- 
face M-Bus. 



February 89 



68 Micro Journal 



CMMU Description 

To effectively play ihe role of an 
active buffer between the processor and 
the memory subsystem, the CMMU im- 
plements interfaces to the P-Bus on the 
processor side and M-Bus on the mem- 
ory side. Logical addresses issued by the 
processor are presented to Ihe CMMU 
on ihe P-Bus, uanslaied (if valid) into 
physical addresses by the CMMU, 
which are then used to access die daia 
cache, memory or other devices on the 
M-Bus. These bus interfaces, together 
with the data cache, have been designed 
to keep die user from having to develop 
a complex interface that is capable of 
feeding ihe processor efficiently. 

The P-Bus interface supports 33 ad- 
dress lines, 32 bit data lines, and conuol 
lines such as Chip Select, 4 Daia Byte 
Enables, Read/Write, Lock, and 2 RE- 
PLY lines. The bus protocol is synchro- 
nous and pipelined, optimized to supply 
the processor with either code or data at 
a peak rale of one word per cycle (80 M 
bytcVsec at 20MHz). For fault detection 
purposes, each P-Bus output(actually all 
outputs in the CMMU) has a comparator 
circuit that checks the signal on ihe pin 
against die one lhat is fed to its driver If 
a discrepancy is detected, dieERR(enor 
delect) signal is asserted one cycle later. 

To supppoa system fault tolerance, 
the P-Bus interface can be placed in ihe 
checker or shadow mode. In this mode, 
all output drivers are disabled, allowing 
a master CMMU to be coupled to one or 
more checker CMMUs. The checkers 
have access to the code and data streams 
and execute concurrently in lock step 
with the master, verifying every output 
signal but not driving any. If a checker 
detecis a diffeience between the output 
of the master and iis own internal signal, 
it asserts the ERR signal. 

The M-Bus interface, described in 
detail in a later section, supports a syn- 
chronous 32 bit bus with multiplexed 
address and data and conuol signals to 
perform bus arbitration, specify Read/ 
Write operations, establish exclusive 
use of global resources, inhibit externa) 
caching, signal bus errors, and provide 
initialization at Reset TheM-Bus inter- 
face works in conjunction with the cache 
control logic to automatically maintain 
cache coherency via an efficient bus 



snooping piotocol Thiscoherency logic 
insures that when a device attempts to 
access a memory location that Ihe cache 
has a modified copy of, the cache will 
update memory before allowing the 
device to complete the access. Cache/ 
memory coherency is a critical issue in 
multiprocessing systems, or in systems 
with Direct Memory Access devices. 

The CMMU can be configured, con- 
trolled, and monitored by software 
through its register file, which consists of 
four categories of registers: 

1. System interface registers: ID, 
Command, Status, Address, and Conuol 
registers. 

The ID Register contains a 7 bit code 
that uniquely identifies the CMMU 
when its register file is accessed from the 
M-Bus. These ID bits are set when the 
CMMU comes out of reset via 7 external 
pins lhat are output-only during normal 
operation. The CMMU ID may be 
changed dynamically by writing a new 
code into this register. 

The System Command Register al- 
lows software to initiate cache flushes 
and address probe operations. Aprobcof 
a logical add/ess returns the correspond- 
ing physical address that is mapped to it, 
and all ihe protection/control bits per- 
taining to that address. Flushes and 
probes will begin after the appropriate 
command code is written into this regis- 
ter, eidier from the P-Bus or M-Bus. 

The System Status Register reports 
M-Bus errors that occur during cache 
flushes, address probes, and memory 
updates caused by cache snoop hits 
(snoop copyback ^mr). This register 
also reports Ihe results of a probe, show- 
ing all the protection and conuol bits that 
pertain to the address being probed. 

The System Address Register sup- 
plies addresses for the probe and cache 
flush commands, and to select set and 
word addresses for software accesses of 
the data cache via the cache diagnostic 
ports. The physical addressof an address 
probe or of a faulted flush is also returned 
in this register. 

The System Control Register allows 
software to enable parity checking on M- 
Bus READs, enable snooping of global 
data accesses on the M-Bus to maintain 
cache coherency, and select the priority 
or fairness protocol when the CMMU ar- 
bitrates for the M-Bus. 



2. The Local Status and Addiess Regis- 
ters are updated by the CMMU when a P- 
Bus transaction such as Id (load), st (store), 
or xmem (memory exchange) ends in a 
fault condition. The status register reports 
one of the fault codes: invalid segment 
fault, invalid page fault, supervisor viola- 
tion, write-protect violation, or bus error. 
The address register contains the physical 
address of the location where the fault 
occurs, except in the case of a write-protact 
fault wheie no address will be reported. In 
this case the faulted address will be avail- 
able in an exception register in the CPU. 

3. Memory management legisteis: Su- 
pervisor and User Area Pointers, and 
B ATC (Block Address Translation Cache) 
write ports. These registers form the basis 
of twoaliemate logical-to-physical address 
tianslation processes. Each of the two area 
pointers can be initialized by software to 
contain an area descriptor, part of which is 
the physical address of a segment descrip 
tor table which is accessed during a hierar- 
chical table walk (described in detail later) 
to perform an address translation. A Tians- 
lation Enable bit in each of these area point- 
ers, when cleared by software, causes the 
CMMU to bypass the translation process 
and ireat logical addresses presented on the 
P-Bus as physical addresses. 

Address mapping for blocks of 512K 
bytes of memory are stored in 8 BATC 
entries via the corresponding wiite ports. 
Each of these entries consists of a 14 bit 
CAM (Content Addressable Memory) 
containing a logical block address, a 13 bit 
RAM containing the corresponding physi- 
cal block address, various control and 
protection bits pertaining to the block being 
mapped, and a Valid bit indicating wheiher 
the entry is valid. In addition, two hard- 
wired entries piovide direct mapping for 
"control memory** which occupies the top 
IM bytes of the total 4G bytes address 
range. 

4. Cache Diagnostic Ports: 4 cache tag 
ports, 4 cache data ports, and one cache set 
status register. These ports allow software 
to access the various components of the 
cache as CMMU internal register accesses, 
mainly for diagnostic purposes. 



68 Mkro Journal 



February '89 



27 



Memory Management 

The address space isdivided logically 
into a supervisor and user space of 4G 
bytes each. The top 1M bytes of ihe 
supervisor space is control space re- 
served for mapping of control registers of 
M-Bus peripheral devices. The CMMU 
uses the S/U (supervisor/user) bit which 
is part of ihe logical address to select the 
appzopriatc space. These spaces can be 
mapped to a 4G bytes or smaller physical 
space, at ihe block (5 12K bytes), seg- 
ment (4M bytes), or page (4K bytes) 
granularity. 

The page mapping is implemented in 
a hierarchy of area, segment, and page 
descriptors. Each area and segment de- 
scr iptorcon tains the physical address of a 
4K byte table pointing to Ihe next level 
descriptors. In ihecaseofa pagedescrip- 
tor, the adtoss points to a 4k physical 
memory space. 

The descriptors also include protec- 
tion/control bits for the portion of mem- 
ory being mapped. Each of the pointers 
in the two area descriptors points to a 
segment table which contains up to 1024 
valid segment descriptors. Each segment 
descriptor in turn points to a page table 
with up to 1024 valid page descriptors. 
Each page descriptor points to the physi- 
cal page to which the logical address is 
mapped. Figure 3 shows the configura- 
tion of the three descriptors. 

The memory management portion of 
the CMMU efficiently handles logical- 
to-physical address mapping described 
above via two ATCs (Address Transla- 
tion Caches): a BATC (Block ATC) and 
a PATC (Page ATC) which functions in 
parallel. The BATC, which maps blocks 
of512K bytes, is optimized for operating 
system uses, or can be used to map any 
user space memory that is mapped into 
contiguous 512 K byte blocks. The 
PATC consists of 56 entries, each con- 
sisting of the S/U bit and upper 20 bits of 
a logical address stored in CAM, the cor- 
responding 20 bit physical address, and 
protection/control bits for a page of 4K 
bytes. These entries are formed and 
replaced by a hierarchical table walk 
automatically initiated when an ATC 
miss occurs. Figure 4 shows Ihe format 
of the ATC entries. 

When a memory access is to be per- 
fozmed (code fetch or data LOAD/ 



STORE; code fctchesare the same as data 
LOADs fiom the CMMU perspective), 
the processor presents a logical address to 
the respective CMMU on the P-Bus ad- 
dress lines. The CMMU latches this 
address and if translation is enabled, 
performs simultaneous associative 
searches in both of the ATCs. In the 
BATC, Ihe upper 14 bits (S/U and 13 
MSB) of the incoming logical address is 
associatively compared to the logical 
address field of the lOeniries. If a match 
occurs in an eniry, ihe corresponding 
physical block address is issued, concate- 
nated wilh ihe remaining lower bits of the 
logical address to form the complete 
physical address of a word within that 
block, which is then used to access 
memory. In the PATC, a similar associa- 
tive search is performed using ihe upper 
20 bits of the logical address and the S/U 
bit, yielding ihe physical address of a 4K 



byte page. The lower 12 bits of ihe logical 
address are concatenated with the page 
address to form the physical word address 
wilhin that page. If theie is an address 
match in both ATCs, the one in the BATC 
takes precedence. 

If there is no match in either of ihe 
ATCs, the CMMU initiates a two-level 
table look up in memory to obtain the 
physical address as shown in Figure 5. 

Fust, a segment descriptor is fetched 
from one of ihe segment tables. The 
physical addzess of this descriptor is 
formed by concatinating the segment 
table addiess given in ihe area pointer 
selected by the S/U bit and the 10 most 
significant bits of the logical address. The 
page descriptor is then fetched at the 
address given by the concati nation of ihe 
page table address in the segment descrip- 
tor and bits 12-23 of the logical address. 
Finally the physical address of the word to 



1 2 1 


3 6 t 


7 


t 


S 1 


: 


SEGMENT TABU BASE ADDRESS 


RES 




R G 


" 


RESERVED 





1 1 1 

? i o 9 e ? e s 



PAGE TABLE BASE ADDRESS 



HffiH?l* s l?H 



1 \ 1 

2lOftft76543210 



PAGE FRAME ADDRESS 



Es|^p G^ RM U^|n! 



WT 


Wme ThiowftT) Pol«r> 


M 


Modified Dau 


SP 


Super* nor Privileged Pioiecuon 


V 


: U«d Al U*M One* Data 


c 


Olobal (Shared) Dili 


WP 


Wro* ProiecU©* 


CI 


Cache Inh.bii (Non Cicheibte Dm] 


V 


• Deunpcof VaJidiiy 



Figure 3 Area, Segment and Page Descriptors 



?• 



* I 2 1 



* 


LPAUM2) 




PPA(JMJ) 


>; 


^ Ml 
1 


H V 


LPA 

31 


Uf **) Pi#t Add* tit 


PFA 

11 


PTiy»ic*J Ptft Addmi 

K « > 2 1 




UM 


1 


PBA 


s lr 


* 


vJiv 



LI A Lo|icj) Bkxt Addrtu 

WT Wnir Ttooufh folic* 

S ; Supcrviior/Ufter Arc* Sckct 

C : Olooal (Shared) Dm 



flA : Phjrtical P*# r Addftt* 

M Mod '. f : Dau 

WP Wme Fkotteiten 
V Dricnpccx Valid' i> 



CI 



Cache faftibir (Won Cocftcablc Don) 



Figure 4 Address Translation Cache Entries 



26 



February *89 



66 Mkro Journal 



be accessed is formed by concatinating 
the physical page address in the page de- 
scriptor wilh the 12 LSB of the logical 
address. Basically, the two groups of 10 
MSB of the logical addresses provide 
offsets into the segment and page tables, 
and the 12 LSB the offset into the physi- 
cal page table. The top 20 bits of (he 
physical address and logical address plus 
the S/U bit, together with all the piotec- 
tion/control bits accumulated from the 
descriptors arc fonned intoa PATCcntiy 
and stored in the PATC, using a FIFO 
cntiy replacement policy. The physical 
address is concurrently presented to the 
cache or to memoiy to obtain the word 
requested in the P-Bus transaction. 



DATA CACHE 

The CMMU data cache has been de- 
signed to exploit temporal and spatial 
locality, providing 98% or better cache 
hit rate in most applications. The cache 
fast SRAM allows the CMMU to supply 
data to the piocessor at the sustained rate 
of one 32 bit word per cycle while there 
aic cache hits. 

The 16K bytes of high speed SRAM 
aie organized as 256 sets of 4 lines each, 
with each line containing 4 32-bil woids. 
with a 20 bit physical address tag, and 
valid and disable bits as shown in Figure 
6. The two valid bits indicate the state of 
the cache line. 



This design, taking advantage of the 
fact that the lower 12 bitsofan address arc 
the same for both the logical and physical 
address, achieves concurrency between 
address translations and data cache ac- 
cesses: the cache is structured so that 
address bits 1 1 -4arc decoded toselectonc 
of 256 sets, while bits 2 and 3 select one of 
4 words in the set; this decoding can be 
initiated and even completed before the 
rVfMU has finished the address transla- 
tion. Once the translation is done, the 
upper 20 bits of the physical address sup 
plied by the MMU are associati vcly com- 
pared with the 4 physical address tags in 
the selected set, andacachehitsignalcd if 
a match occurs. The data word is then 



P 9U3 LOGCAL AOOA£S3 
321 2" 2 




|»»T—— fr»H^| ^ t _ 




©Z3 




Figure 5 Two Level Table Walk 



68 Micro Journal 



February 69 



29 



Tefeplitme: (615)842-4600 SOUtfl %OSt !Medi(l 



5 lObOObbSO 



OS-9, tlni'JVLX, 'JL-LX, S'K'DOS 



ASSEMBLERS 

ASTRUK09 from S.E, Media - A "Siiucaired Assembler for the 6809" 
which requires the TSC Macro Assembler. 
FLEX. SKDOS, CCF - $9995 
Macro Assembler for TSC - The FLEX. SKDOS STANDARD Assembler. 

Special - CCF $35 DO; FLEX, SKDOS $50.00 
OSM Extended 6809 Macro Assembler from Uoyd I/O. - Provides local 
labels. Motorola S- records, and Intel Hex records; XREF. Generate 
OS-9 Memory modules under FLEX. SKDOS. 
FLEX. SKDOS, CCF. OS-9 $99 W 
Relocating Assembler/Linking Loader from TSC. - Use wiih many of the 
C and Pascal Compilers. 

FLEX. SKDOS. CCF $150.00 
MACE, by Graham Trott from Windrush Micro Systems -- Co-Resident 
Editor and Assembler; fast interactive A.L. Programming for small to 
medium -sized Programs. 

FLEX. SK-DOS. CCF - $75.00 
XMACE ~ MACE w/Ooss Assembler for 6800/1/2/3/8 
FLEX. SKDOS, CCF - $98,00 

DISASSEMBLERS 

SUPER SLEUTH from Computer Systems Consultants Interactive 
Disassembler; extremely POWERFUL* Disk File Binaiy/ASCD 
Examine/Change, Absolute or FULL Disassembly. XREF Generator, 
Label "Name Changer", and Files of "Standard label Names'* for 
different Operating Systems. 
Color Computer SS-50 B us (all wfAL. Source) 
CCD (32K Req'd) Object Only $49.00 

FLEX. SKDOS $99.00 - CCF Object Only $50.00 UniFLEX $100.00 
CCF. with Source $99.00 OS-9. $101.00 - CCO, Object Only $5000 
68010 SUPER SLEUTH - Similar to 8 Bit Version except written 
in"C\ 

68010 Disassembler $10000 FLEX. UniFLEX, UNIX, XENIX. 
MS-DOS, SKDOS, OS 9 

OS9168K Object Only $100.00 or with Source $200.00 
DYNAMITE* - Excellent standard "Batch Mode" Disassembler. Includes 
XREF Generator and "Standard Label" Files. Special OS 9 options 
with OS-9 Version. 

CCF. Object Only $100,00 - CCO. Object Onty$ 5995 

FLEX, SK+DOS . Object Only $100.00 - OS-9. Object Onfy$l 50.00 

UniFLEX Object Only $300.00 

CROSS ASSEMBLERS 

CROSS ASSEMBLERS from Computer System Consultants - Supports 
1802/5, Z-80. 6800/1/2/3/8/1 1/HC1 1 , 6804, 68Q5/HC05/ 146805. 6809/ 
OOUOl, 6502 family. 8080/5. 8020/ 1/2/3 5/C3 5/39/ 40/48/C48/49/C49/50/ 
8748/49. 8031/5 1/8751.32000 and 68000/68010 Systems. Assembler 
and Listing formats same as target CPU's format Produces machine 
independent Motorola S-Text Includes Macro Pre-Processor. Written in 
- C. 68000 or 6809 + Macintosh* Atari, FLEX, CCF. UniFLEX, OS-9. 
XEH1X, UNIX, MSDOS t SKDOS 

any object or source each -$50 00 

any 3 object or source -$100.00 

Set of ALL object $20000 * with source $500.00 
XASM Croa Aaembters for FLEX, SK-DOS from S.E. MEDIA -This set 
of 6800/1/2/3/5/8, 6301. 6502, 8080/5, and Z80 Cross Assemblers uses 
the familiarlSC Macro Assembler Command Line and Source Code 
formal, Assembler options, etc., in providing code for target CPU's. 

Complete set, FLEX. SKDOS only - $150.00 



CRASMB from LLOYD I/O - Supports Motorola's. Inters, ZUog's, and 
other's CPU syntax for these 8-Bii microprocessors: 6800,6801. 6303. 
6804.6805.6809,6811 (all varieties); 6502, 1802/5. 8048 family, 8051 
family, 8080/85. Z8, Z80. and TMS-7000 family. Has MACROS. 
Local Labels, Label XREF, Label Length to 30 Chars. Object code 
formats: Motorola S Records (text). Intel HEX- Records (text), OS-9 
(binary), and FLEX, SK-DOS (binary). Written in Assembler ... e.g. 
Ve™ F*tL 
CPU TYPE. Price each: 

For: MOTOROLA INTEL OTHER CO MPLEPE SET 
FLEX9 $150 $150 $150 $399 

SK-DOS $150 $150 $150 $399 

OS-9/6809 $150 $150 $150 $399 

OS-9/68K - — — $432 

CRASMB 16.32 from LLOYD I/O - Supports Motorola's 68000. and has 
same features as the 8 bit version. OS9/68K Object code Format allows 
this cross assembler to be used in developing your programs for 
OS-9/68K on your OS 9^6809 computer. 

FLEX, SK-DOS, CCF, OS-&6809 $249.00 

COMMUNICA TIONS 

CMODEM Telecommunications Program from Computer Systems 

Consultants. Inc. — Menu-Driven; supports Dumb-Terminal Mode, 
Upload and Download in non-protocol mode, and ihe CP/M "Modem?" 
Chriistensen protocol mode to enable communication capabilities for 
almost any requirement. Written in "C\ 

FLEX, SK-DOS. CCF. OS-9. UniFLEX, UNIX.XEN/X, MS-DOS, 
with Source $100.00 . without Source $50.00 
X-TALK from S.E. Media - X-TALK consists of two disks and a special 
cable, ihe hookup enables a 6809 SWTPC computer to dump UniFLEX 
files directly to the UniFLEX MUSTANG-020. This is the ONLY 
current ty available method to transfer SWIPC 6809 UniFLEX files to a 
68000 UruFt-EX system. Gimix 6809 users may dump a 6809 
UniFLEX file to a 6809 UniFLEX five inch disk and it is readable by 
the MUSTANG 020. The cable is specially prepaied with internal 
connections to match ihe non-standard SWTPC SO/9 I/O Db25 
connectors. A special SWTPC S+ cable set is also available. Users 
should specify which SWTTC system he/she wishes to communicate 
with the MUSTANG-020. The X-TALK software is furnished on two 
disks. One eight inch disk contains S.E. Media modem program C- 
MODEM (6809) and the other disk is a MUSTANG 020 five inch disk 
with C-MODEM (68020). Text and binary riles may be directly 
transferred between the two systems. The C-MODEM programs are 
unaltered and paform as excellent modem programs also. X-TALK 
can be purchased with or without the special cables, but this special 
price it available to registered MUSTANG 020 users only. 

X-TALK Complete (cable. 2 disks) $99.95 

X-TALK Software (2 disks only) $69.95 

X-TALK with CMODEM Source $149.95 
XDATA from S.E. Media . A COMMUNICATION Package for the 
UniFLEX Operating System. Use with CP/M, Main Frames, other 
UniFLEX Systems, etc. Verifies Transmission using checksum or 
CRC; Re-Transmits bad blocks, esc. 

UniFLEX- $299.99 



AiUaMllirUfft*' 

0«OS*trSB$**OOS 

F-rt£X.U.UaFl£X 
CCt.Ctfet CtonpuxwW-y 
CCF-CotorCc*voUrFL£X 

•OS-! b » Tf d*m*rh of Mkn 




South "East Media 

S900 CassajutmSmitk 1tf. . tfvyon, 7k 3 7343 




•• Shipping •• 

Addl»U^A.(mio.S^ltO 
For4|P&*fiK»A<ld5% 
PordfB AtrwpJI A 44 19% 
Or COJH Shlppfof Oalj 



i and MMPfoafc-ITLEX mnd tfntH.KX trt TrMtorwrfcurfTthnkal SyiUMi Conwmwt»*Jite«pft8 fr * Trw^umtk of &tr It Srftwin Sytttfw Corp. 



30 



February '39 



68 Micro Journal 



Vettpkonc: (bis) Mj-4hoo South TLast < Mtdia 



TefeK 5106006630 



OS-9, Un&VEX, 'JL'ZX, SX*&Q$ 



PROGRAMMING LANGUAGES 

PL/9 from Windrush Micro Systems — By Giaham Tron. A combination 
Editor Compiler Debugger. Direct source- to-objea compilation 
delivering fast, compact, re-entrant, ROM -able, PIC 8 A 16 bit 
Iniegeri A 6-digit Real numbers for all teal- world problems. Direct 
control over ALL System resources, including interrupts* 
Comprehensive library support; simple Machine Ode interface; step- 
by-step traosr for instant debugging. 500> page Manual with tutorial 
guide. 

FLEX, SKDOS. CCF . $198.00 

PASC from S.E Media - A F1.EX9. SKDOS Compiler with a definite 

Pascal "flavor*. Anyone with a tat of Pascal experience should be able 
to begin using PASC to good effect in shoit oider. The PASC Package 
comet complete with three sample programs: ED (a syntax or structure 
editor), EDITOR (a simple, public domain, screen editor) and CHESS 
(a simple chess program)- The PASC package curves complete with 
source (wnnen m PASC) and documentation. 
FLEX, SKDOS $9500 

WHIMSICAL from S.E. MEDIA Now supports Rtal NutnUrs "Structured 
Programming" WITHOUT losing the Speed and Control of Assembly 
language! Single*pasi Compiler features unified, uscr^eCined I/O; 
produces ROMaNe Code; Procedures and Modules (including pre- 
compiled Modtiks); many "Types" up to 32 bit Integers, 6-cbgu Real 
Numbers, unlimited siaed Arrays (vectors only); Interrupt handling; 
long Variable Names; Variable Initialization; Include directive; 
Conditional compiling; direct Code insertion; control of the Stack 
Pointer, etc. Run-Time subroutines insetted as called during 
compilation. Normally produce* 10% less code than PU9. 
FLEX. SKDOS and CCF - $195 .00 

KANSAS CITY BASIC from S.E. Media - Baric for Color Computer OS-9 
with many new commands and sub functions adrlpd. A full 
implementation of (he IP -THEN-ELSE logic is included, allowing 
nesting to 255 levels. Strings are supported and a subset of the usual 
string functions such as LEFTS. RIGHTS. M1DS, STRINGS, etc are 
included. Variables are dynamically allocated. Also included are 
additional features such as Peck end Poke. A must for any Color 
Computer user running OS-9. 
CoCo OS9 $39.95 

C Compiler from Wind rush Micro Systems by James McCosh. Full C for 
FLEX, SK-DOS except bitfields, including an Assembler. Requires 
the TSC Relocating Assembler if user desires to implement his own 
Libraries. 

FLEX. SKDOS. CCF . S295J0O 

C Compiler from InlroJ - Full C except Doubles and Bii Fields. 

streamlined for the 6809. Reliable Compiler; FAST, efficient Code. 
More UNIX Compatible than most. 

FLEX , SKDOS, CCF, OS-9 (Level II ONLY), UniFLEX . $575.00 

PASCAL Compiler ftt>m Lucldata ~ ISO Based P-Code Compiler. 
Designed especially for MiaoaxnpHer Systems. Allows linkage to 
Assembler Code for maximum flexibility. 
FLEX. SK-DOS and CCF $190.00 

OmegaSofl PASCAL ttvm Certified Software ~ Extended Pascal Tor 
systems and real-time programming. 

Native 6B000/68020 Compiler, $575 for base package, options available. 
For OS-9£8000 and PDOS host system. 

6809 Cross Compter (OS-9/o8000 host) $700 for complete package. 



KB ASIC - from S.E. MEDIA - A "Native Code" BASIC Compiler which is 
now Fully TSC X BASIC axnpatible. The compiler compiles to 
Assembly Language Souroe Codx. A NEW, ttnamliraad , Assembler is 
now included allowing ihe assembly of LARGE Compiled K*BAS1C 
Programs. Conditional assembly reduces Run-time package. 
FLEX. SK-DOS. CCF t OS-9 Compiler /Assembler $99.00 
CRUNCH COBOL from S.E. MEDIA - Supports large subset of ANSH 
Uvel 1 COBOL with many of the useful Uvd 2 features. Full FLEX. 
SKDOS File Structures, including Random Files and the ability to 
process Keyed Files. Segmem and link large programs at runtime, or 
implemented as a set of overlays. The System requires 56K and CAN 
be run with a single Disk System. A vety popular product, 
FLEX, SKDOS. CCF - $99.95 
FORTH from Steams Electronics ~ A CoCo FORTH Programming 
language. Tailored to the CoCo! Supplied on Tape, tiansleiabk to 
disk. Written in FAST ML Many CoCbfuncticM (Graphics, Sound, 
etc.). Includes an Editor, Trace, etc. Provides CPU Cany Rag 
accessibility . Fast Task Multiplexing, Clean Interrupt Handling, etc. for 
the "Pro". Excellent "learning" tooll 
Color Computer ONLY * $58.95 
FORTHBU1LDER is a stand-alone target compiler (cros scorn pile r) for 
producing custom Forth systems and application programs. 
All of the 83-ctandani defining words and central oruaures are 
«ea*niztt» by FORTHBUILDER. 

FORTHBUO-DER is designed to behave as much as possible like a 
resident Foith inteipreter/compiler, so that most of the established 
techniques for willing Forth code can be used without change. 
like compilers for other languages, FOR11IBUILDER can operate in 
"batch mode". 

The ovnpiler reepgniu and emulates target names defined by 
CONSTANT or VARIABLE and u readily extended with "compile- 
lime" definitions to emulate specific target words. 
FORTIIBU1LDER is supplied as an executable command file 
configuied for a specific host system and target processor. Object 
code pioduccd from ihe accomp ying model source code is royalty- 
free to licensed users. 

FLEX. CCF. SK-DOS- $99.95 

EDITORS & WORD PROCESSING 

JUSr from S.E. Media - Text Formatter developed by Ron Anderson; for 
Dot Matrix Printers, (xwidea many unique features. Output 
"Formatted" Text to ihe Display. Use the FPRINT.GMD supplied for 
producing multiple copies of ihe Toenailed" Text on ihe Printer 
INCLUDING IMBEDDED PRINTER COMMANDS (very useful at 
other times also, and woith the price of ihe program by itself). "User 
Configurable 4 * for adapting to other Printers (comes set up for Epson 
MX-80 with Graft rax); up to ten (10) imbedded "Printer Control 
Cornmandj". Compensate* for a "Double Wi Ah" printed tine. Includes 
the normal line width, margin, rndaa, paragraph, spice, vertical skip 
lines, page length, page raimbcrmg. centering, fiD. justification, etc 
Use with PAT or any other editor. 

* Mow supplied as a iwo disk set: 

DisktU: JUm.CMD object file, 

JUSniXT PL9 source;FLEX, SK-DOS - CCF 

Disk $2: JUSTSC object and source in C: 

FLEX, SKDOS, OS 9, CCF 

The JTSC and regular JUST C source arc two separate programs. JTCC 
compiles to a version that expects TSC Word Processor type 
commands, (pp ,sp .ce etc) Great for your older text files. The C 



AtftlbtMtj t 

o . o**, a . sifooa 
r-rux r u.Ukartjrjc 
cca . osaw c* m ay oa-t 

CCF • Otlsr Cmmmmm ¥\Xt 




South "Last Media 

S900 CaxajidmSmiUi %& • Tfcrsv*. 7k 37343 




•• Shipping •♦ 

A4al»UULii^LfXja) 

or cx> sx tat**** o»b 



•O*-* lis Thaw k of Mkfimii ftftd ft(sUmlft.4fLfcl Bad UnffLIX if* Trftdnnarki aTTftthnkal KjUtrni OMiHlUAt»-»S|L*DOS I* a TndtiMrk <d Bur -K Mtwari 






68 Mcra Journal 



February 89 



31 



Tefepfwru: (615)042-4606 South *EaSt tMedia 



•rde\: 5106006630 



OS-9, llniyL'LX, 'J L'LX, S'K*'DOS 



source compiles 10 a standard syntax JUST.CMD object file, tiling 
JUST syntax (,p ,u ,y etc) With ail JUST functions plus several 
uaduuonsJ pi inter forraaoing functions. Reference the JUS1SC C 
source. For those wanting an excellent BUDGET PRICED word 
proceuor . wiih features none of the other* have. This is ill 

Dirk (1) • PIS FLEX only. FLEX. SK-DOS <ft CCF - 149.95 
Disk Set (2) • FLEX, SKDOS A CCF <ft OS-9 (C version) - $69.95 

05 9 68K000 complete with Source - 179.95 
PAT from S.E. Media - A full feature screen oiiented TEXT EDITOR with 
ail lie best of "PIE™". For those who swore by and loved only PIE, 
this is for you] All PIE features and much motet Too many features to 
list And if you dofrt like ihese. change or add your own, PL-9 source 
furnished. "C" source available soon. Easily configured to your CRT. 
with special config section. 

Regular FLEX. SKDOS $129.50 

• SPECIAL INlRODUCnON OFFER • $79.95 

SPECIAL PAVJUST COMBO (with source) 
FLEX,SK*DOS $99.95 

OS-9 68K Version $229.00 

SPECIAL PAVJUST COMBO 68K $249.00 
Not*: JUST in "C" source available for OS-9 
CEDRJC from S M. Media - A screen oriented TEXT EDITOR with 

availability of 'MENU* aid Macro definitions, configurable petmaneni 
definable MACROS - all standard features and ihe fastest 'global' 
functions in the west. A simple, automatic terminal cotifig program 
makes this a real 'no haxsei' predate! Only 6K in size, leaving the 
average system over 165 sactors for text buffer - appx. 14.000 plus of 
free moTKwy! Extra line for programming as well as text. 

FLEX. SKDOS $69.95 
BASEDIT from S.R Media • A TSC BASIC or XBASIC screen editor. 
Appended to BASIC or XBASIC, BAS-ED1T is tmnsparcro u> normal 
BASIC/XBASJC operation. Allows editing while in BASIC/XBASIC, 
Supports the following fxmcDm»: OVERLAY. INSERT and DUP 
LINE. Make editing B ASIC/XB ASIC piograms SIMPLE1 A GREAT 
lime and effort saver. Programmers love itf NO more retyping entiie 
lines, etc Complete with over 25 d liferent CRT terminal configuration 
ova lays, 

FLEX.CCF.SK DOS $39.95 
SCR EDITOR III from Windniah Micro Systems - Powerful Screen- 
Oriented Editor Word Processor. Almost 50 different commands; over 
300 pages of Documentation with Tutorial Features Multi-Column 
display and editing, "decimal align" columns (AND add them up 
automatically), multiple keystroke macros, even/odd page headers and 
focarn, imbedded primer control codes, all justillcatiois. "help" 
support, store common ecmm*mJ series on disk, etc. Use siapplied "set- 
ups", or remap the keyboard to your needs. Except for proportional 
printing, this package will DO IT ALLI 
6800 or 6809 FLEX. SKDOS or SSBDOS. OS-9 - $175.00 
SPELLB "Computer Dictionary" from S.E. Media - OVER 150,000 words! 
Look up a word from within your Editor or Word Processor (with (he 
SPH.CMD Utility which operates in the FLEX. SKDOS UCS). Or 
check and update the Text after entry; ADD WORDS to the Dictionaiy, 
"Rag" questionable woids in the Text. "View a word in context" before 
changing or ignoring, etc SPEU.B first checks a -Common W«d 
Dictionary", then the normal Dictionaiy. then a "Personal Word List", 
and Rnally, any "Special Word List" you may have specified. SPELLB 
also allows the use of Small Disk Stotage systems. 

FLEX. SKDOS and CCF - $129.95 



STYLO-GRAPH from Great Plains Computer Co. ~ A full-semen oriented 
WORD PROCESSOR - (uses the 51 x 24 Display Semens on CoCo 
fLEX/SK-DOS, or PBJ WoidpakX Full screen display and editing; 
supports the Daisy Wheel prupurojxial pi inters. 
NEW PRICES 6809 CCF and CCO - $99.95. 
FLEX. SKDOS or OS-9 - $179,95. UniFLEX. $299.95 
STYLO-SPELL from Great Plains Computer Co. ~ Fast Computer 
Dictionaiy. Complements Stylograph. 

NEW PRICES 6809 CCF and CCO . $69.95. 
FLEX, SKDOS or OS-9 - $9995. UniFLEX- $149.95 
STYLO- MERGE from Great Plains Computer Co. - Merge Mailing List lo 
"Form" Letters. Print multiple Files, etc., through Stylo 
NEW PRICES 6809 CCF and CCO. $59.95. 
FLEX. SKDOS or OS-9 . $79.95. UniFLEX- $129.95 
STYLO-PAK — Giaph + Spell + Merge Package DeslHI 

FLEX .SKDOS or OS-9 - $329.95. UniFLEX - $U9.95 
OS-9 68000 $695 DO 

DATABASE ACCOUNTING 

XDMS from vYe4rbe4flr Applied Boshes* Systems 

FOR 6809 FLEX or SKDOS (W) 

Up to 32 groupofietds per record I Up to 12 character file name if Up to 1024 
byte records! User defined screen and print coniroll Process files! Form 
Hies! Conditional execution f Process chaining! Upward/Downward file 
Linking I Ftle joining! Random fxk virtual pagingl Built in utililiesf Built 
in text line editor I Fully session oriented r enhanced forms I Boldface, 
Double widih, tubes and Underline supported f Written in compact 
structured assemblerl Integrated for FAST execution f 
XDMS-IV Data Management System 
XDMSIV it a brand new approach to data management It not only permits 
users to describe, enter and retrieve data, but also to process entire files 
producing cucuvniaed reports, screen displays and file output 
Processing cot consist of any of a set of standard high level functions 
including record and field selection, sorting and aggregation, lookups in 
other files, special processing of record subsets, custom report 
formatting, totaling and subtotaling, and preienUbon of up to three 
reined files as a "database" on user defined output reports. 
POWERFUL COMMANDS f 
XDMS IV combines the functionality of many popular DBMS software 
systems wiih a new easy to use command set into a single integrated 
package. We've included many new features and commands including a 
set of general file utilities. The processing command i are Input - Process - 
Output (fPO) which allows almost instant implementation of a process 
design. 
SESSION ORIErfTED* 
XDMS-JV is session oriented. Enter "XDMS" and you are in instant 

command of all the features. No more waiting for a command to load in 
from diskl Many commands are immediate, such a* CREATE (file 
definition), UPDATE (file editor), PURGE and DELSI E (utilities). 
OUiers are pusu commands which are used to create a user paxes* 
which is executed with a RUN command. Either may be entered into a 
"process" file which is executed by an EXECUTE statement. Processes 
may execute other processes, or themselves, cilher conditionally or 
uncondiiksnJIy. Menus and screen prompts are easily coded, and entiie 
user applications can be run without ever leaving XDMS-IV 



AnlkbOtrfUttftdi 
O.0S'*.S-SK*DO9 
F«FLKX,U«l*nU 
CCam&kwCmifim QS.» 

OCT . C»tof Ctrngmlm rut 




South 'Lost Orizdia 

$900 CauandTaSmitfi %i. * tfbaon, Tn. 37343 



•• Shipping •• 

Add 1% VSJL (nta. 91H) 
Nn|p|Kvrfife«AddS% 
Fot%» AVKWli Add 19% 

y OrCJXJks*rr*e.o*b 



H «,» li m Tridimirk of Mkrmrr md Mo«n«»ta.-KUtX .M t'niyLKX »ft Tn 



i Sjwumt r>n».lUi>ti »SK*PQS t* ■ Tr»d—rfc «f fU^K S*ft— f lyrttiw Off,. 



32 



February 89 



68 Micro Journal 



'Ttfcpfume: (615) 842-4600 SOUtH 'EOSt 9Atdia 



*re(e\: 5106006630 



OS-9, 'Uni'JL'LX, 'JL'LX, S'K''DOS 



> 



TVS EASY TO USBt 

XDMS-1V keeps data management limplet Raiher than design a complex 
DBMS which hidea the true nam re of lhe data, we kept XDMS-W file 
oriented. "Hie user view of daia rtlatiorohjps ii prexenied in reports and 
•CTcen output, while the actual data reside* in easy to maintain file*. 
Ihia aspect pennits aisujtniza) presentation and reports without 
complex redefinition of the database files and strueturc. XDMS-IV may 
be used for a wide range of applications from simple record 
management systems (addresses, inventoiy ...) to integrated daubasc 
systems (order entry, accounting...) 

The possibilities arc unlimited,.. 

FOR 6809 FLEX or SK-DOS^'ft* Disk) $249,95 

UTILITIES 

6A5kD9 XRef from S.E. Media - This Basic09 Cross Reference Utility is a 
Baaic09 Program which will produce a "pi city printed" listing with each 
line numbeied, followed by a complete cross referenced listing of all 
variables, external pro^Airei, and line numbers called. Also include! a 
Program List Utility which outputs a fast "pretty printed" listing with 
line numbers. Requires Basic09 or RunB. 

OS-9 A CCO object o*ty - $39.95; with Source - $79.95 

BTree Routines - Complete set of routines to allow simple implementation 
of keyed files * for your programs - running under Basic09. A real time 
saver and should be a part of every serious programmers tool-box. 
OS-9 & CCO object only * $89.95 

Lucidata PASCAL UTILITIES (Ri^uinsi Pascal vcr 3) 

XREF ~ produce a Croti Reference Listing of any text; oiieoted to Pascal 
Source. 

INCLUDE - Include other Rles in a Source Text, including Binary - 
unlimited nesting. 

PROFILER - provides an Indented, Numbered, "Siwcjogram* of a Pascal 
Source Text File; view the ovenll structure of large programs, program 
integiity, etc. Supplied in Pascal Source Code; requires compilation. 
FLEX, SK.D0S, CCF .~ EACH 5" . UOJOO. 8" - $50.00 

DUB from S.E, Madia - A UnlFLEX BASIC decompiler Re Create a 
Source Lilting from UniFLfiX Compiled basic Programs. Works with 
ALL Versions of 6809 UniFLEX basic 
VniFLEX - $219.95 

LOW COST PROGRAM KITS rVooi Southeast Media The following kits 
are available for FLEX. SK-DOS on either 5" or 8* Disk. 

1. BASIC TOOL-CHEST $29.95 
BLISTER.CMD: preoy printer 
UNEXREF.BAS: line cross -reference r 
REMPACBAS, SPCPAC.B AS, COMPAC.BAS: 
remove superfluous code 

STRIP.BAS: lupcrflvous line-numbers stripper 

2. FLEX, SK-DOS UTILITIES KIT $39.99 
CATS. CMD; alphabetically-sorted duroory listing 
CATDCMD: dale-sotted diieoory listing 
COPYSORT.CMD: Hie copy, alphabetically 
COPYDATE.CMD: Hie copy, by date^oider 
FIL£DATE CMD: change file creation date 

INFOCMD <* INPOGMX.CMD): tells disk attributes & commits 
REUNKCMD (& REUNK82): re-oider* fiagmented free chain 
RESQ.CMD: undeletes (recovers) a deleted file 
SEC1CRS.CMD: show sector order in free chain 
XLCMD: super text lister 



3. ASSEMBLERS/DISASSEMBLERS UTILITIES $39.95 

UNEFEED.CMD-. modulariie' diiasiembler output 
MATH.CMD: decimal, hex, binary, octal convenient 
A tables 
SKIP.CMD: column stripper 

4. WORD - PROCESSOR SUPPORT UHLITIES $49.95 
FULLSTOP.CMD: checka for capitalization 
BSTYCTTBAS CBAC): Stylo to dot-matiix piinter 
NECPRTNT.CMD: Stylo to dot-matrix printer filter code 

5. UHLITIES FOR INDEXING $49.95 

MENU .B AS: selects requited program from list below 

INDEX.BAC: word index 

PKRASES.BAC: phrase index 

CONTENT.BAC: table of contents 

INDXSORT.BAC: fast alphabetic sort routine 

FORMATTER. B AC: produces a 2-column formatted index 

APPEND.B AC: append any number of files 

CHAR.BIN: line reader 
B ASIC09 TOOLS consist of 21 subroutines for Basic09. 
6 were written in C Language and the remainder in assembly. 
All lhe routines are compiled down to native machine code whicb 
makes them fast and compact. 

1. CFILL - fills a string with characters 

2. DPEEK - Double peek 

3. DPOKE - Double poke 

4. FPOS - Current file position 

5. FSIZE ~ File size 

6. FrRIM - removes leading spaces from a siring 

I. GETPR - returns the current process ID 
g. GtTrOPT - gets 32 byte option tactic 

9. GETUSR - gets the user ID 

10. GTIME - gets the time 

I I. INSERT - insert a suing into another 

12. LOWER — converts a string into lowercase 

13. READY - Checks for available input 

14. StTrPRIOR ~ changes a process priority 

15. StTrUSR ~ changes the user ID 

16. StTrOFr - set 32 byte option packet 

17. STIME - sets the time 

18. SPACE - adds spaces to a suing 

19. SWAP — swaps any two variables 

20. SYSCALL « system call 

21. UPPER — converts a string to uppercase 

For OS-9 - $44.95 - Includes Source Code 

SOFTOOLS 

lhe following programs are included in object form for immediate 

appfcgaiion. PL/9 source code available for customization. 

READ-ME Complete instructions for cnilial set-up and operation. Can even 

be primed out with the included text processor. 
CONFIG one rime syitem configuiation. 

CHANGE changes words, characters, etc. globally to any text type file. 
CLEANTXT converts text Kief to standard FLEX, SK-DOS files. 
COMMON compare two text Tiles and reports differences. 
COMPARE another check file that reports mis-matched lines. 
CONCAT similar to FLEX , SK-DOS append but can also list files to icreen, 
DOCUMENT for PL/9 source files. Very useful in examining parameter 

passing aspects of procedures. 



O.O^f, S*SKt>OS 
r.FLlX.U.UirifLEi: 
CCS . Oolur GoRp«Ur OS-9 
CCF m Crior Comauttr FVW 




South "Last Media 

5300 dSJauCraSmith Vtf. • Xvyon, Tn, 37343 




•• Shipping •• 

A64 2% VSJL (mJft. USt) 
fb«lB» 9*t±* M4 5% 
Vbnttaa Airmail A«4»% 
Or C0JX SblpplmjOMy 



•OS-* ba Tn4**mr* ofMkfgwmn «d Motarob «TLEX iim! UhIKLEX irt TreAtmrfciof T«hnfc*] Sy««ni c oniJi»nt>.«SK«POS It * Tradawrit «f 8Ur- K ScTfiri Sj«*— Off, 



68 Micro Journal 



February 89 






Trfcpfume: (6 1 5) $42-4600 SOU tfl 'EdS t Media 



Telex: 5106006630 



OS -9, Wti'JCLX, 'JL'LX, S'K'WS 



ECHO echo* lo either screen or file. 

FIND an improved find command with "poller*" matching and wildcards. 
Very useful. 

HEX dimipi files in both hex and ASC3L 

INCLUDE a file copy prog ram ihat will accept "includes" of other disk files. 

KWIC allows routing each word, on each line to the beginning. Veiy useful 
in a son program, etc. 

L1STD1R a directory listing program. Not super, but better than CAT. 

MEMKORT a high-speed text file sorter. Up to 10 fields may be toned. 
Veiy fast Very useful. 

MULT1COL width of page, number of columns may be specified. A 
MUST1 

PAGE similar to UST but allows for a page header, page width and depth. 
Adjust for CRT screen or printer as sei up by CONFIG. A vejy smart 
print driver. Allows printer control commands. 

REMOVE a fast file deleter. Careful, no prompts issued. Zap, and its gone! 

SCREEN a semen listing utility, Word wraps text to fit screen. Screen depih 
may be altered at run time. 

SORT a super version of MEMSORT. Ascending/descending order, up 10 10 
keys, case over-ride, son on n' h wojd and son on characters if file is 
small enough, sons in RAM. If large file, son is constrained lo size of 
your largest disk capacity. 

TPROC a small but nice text formatter. This is a complete formatter and has 
functions not found in other formatters. 

TRANS LIT sons a file by x keyfields. Check* for duplications. Up to 10 
key files may be used. 

UNROTATE used with KWIC this program reads an input file and unfolds 
it a line at a time. If the file has been sorted each word will be 
presented m sequence. 

WC a word count utility. Can count words, characters or lines. 

NOTE; (his Mi of utilities! cooatsto of 6 5.1/4" disks or 2 IT disks, with 
source (PL9). 3 5.1/4" disks or I 8" disk without source. 
Complete set SPECIAL INTRO PRICE: 
5-1/4" with source FLEX or SK-DOS - $12995 
without source - $79.95 
S" wiih source - $79.95 - without source $4995 

FULL SCREEN FORMS DISPLAY from Computer Systems Consultants - 
TSC Extended BASIC program supports any Serial Terminal with 
Cursor Conirol or Monory-Mftppcd Video Displays; substantially 
extends ihe capabilities of the Program Designer by providing a taole- 
djiven method of describing and using Full Screen Displays. 
FLEX . SK-DOS and CCF, UniFLEX . $25,00. with Source . $50.00 

SOLVE from S.E. Media » OS-9 Levels I and Q only. A Symbolic Object/ 
Logic Vesication & Examine debugger. Including inline debugging, 
disassemble *nd assemble. SOLVE IS THE MOST COMPLETE 
DEBUGGER we have teen for the 6809 OS 9 series! SOLVE does it 
alii With a rich selection of monitor, assembler, disassembler, 
crrvisonmenial. execution and other miscellaneous eommands. SOLVE 
is the MOST POWERFUL tool-kit item you can ownl Yet, SOLVE is 
simple to use 1 With complete documentation, a mapl Everyone who 
has ordered this package has ravadf See review - 68 Micro Journal - 
December 1985. No 'blind' debugging here, full screen displays, rich 
and complete m in formation presented. Since review in 68 Micro 
Journal, this is our fastest moverl 

Until Allordf OS 9 $69,95 



DISK UTILITIES 

OS9 VDtsk from S.E. Media -- For Level I only. Use the Extended 
Memory capability of your SWTPC or Gimix CPU card (or similar 
format DAT) for FAST Program Compiles, CMD exaonion, high speed 
interprocess communications (withoia pipe buffers), etc - SAVE that 
System Memory. Virtual Disk sue is variable in 4K increments up to 
960K. Some Assembly Required. 

Level! OS -9 object $79.95; with Source $149.95 

O-F from S.E. Media -- Written in BASIC09 (wiih Seurcc), includes: 

REFORMAT, a BASIC09 Program that reformats a chosen amount of 
an OS 9 disk to FLEX, SK-DOS Format so it can be uied normally by 
FLEX. SK-DOS; and FLEX, a B ASIC09 Program that does the actual 
read or wiite function to the special O-F Transfer Disk; user-friendly 
menu driven. Read the FLEX, SK-DOS Oirecipry, Delete FLEX, 
SK-DOS Files, Copy both directions, etc. FLEX. SK-DOS users use 
the special disk just like any other FLEX, SK-DOS disk 
OS~9 . 6809168000 $79.95 

LSORT from S.E, Media - A SORT/MERGE package for OS-9 (Level I & 
II only).. Sorts records with fixed lengths or variable lengths. Allows 
for either ascending or descending son. Sorting can be done in either 
ASCD sequence or alternate collating sequence. Right, left or no 
justification of data fields available. LSORT includes a f d I set of 
comments and errors messages. 
OS-9 $8500 

HIER from S.E. Media - HIER is a modem hierorchal storage system for 
users under FLEX, SK-DOS. It answers the needs of thotc who have 
hard disk capabilities on their systems, or many files on one disk - any 
sue. Using HIER a regular (any) FLEX, SK-DOS disk (8- 5- hard 
disk) can have sub diraaories. By this method the pivUrmi of 
assigning unique names to files is Icii burdensome. Different Hies with 
the exact same name may be oo the same disk, as long as they are in 
different directories. For the Winchester user this becomes a musL Sub- 
directories are the modem day solution thai all current large systems 
use Each directory looks to FLEX, SK-DOS like a regular file, 
except they have lite extension \DIR\ A full set of directory handling 
programs are included, making the operation of HIER simple and 
straightforward. A special install package is included to install HIER to 
your pellicular version of FLEX, SK-DOS. Some assembly required. 
Install indicates each byte or reference change needed. Typically - 6 
byte changes in source (furnished) and one assembly of HIER is all ihat 
is je<ntied. No programming required I 
FLEX - SK-DOS $79.95 

COPYMULT from S.E. Media - Copy LARGE Disks to several smaller 
disks. FLEX, SK-DOS utilities allow the backup of ANY size disk to 
any SMALLER size diskettes (Hard Disk to floppies, 8* to 5", etc.) by 
simply inserting diskettes as laquesied by COPYMULT. No fooling 
with directory deletions . etc COPYMULT.CMD understands normal 
"copy" syntax and keeps up wiih files copied by maintaining directories 
for both host and receiving disk system. Also include* BACKUP.CMD 
to download any size "random" type file; RESTORE.CMD to 
restructure cqpicd " random** fDea for coding, or nxopymg back to the 
host system; and FREEUNK.CMD as a "bonus" utility that "relinks" 
the free chain of floppy or hard disk, eliminating fragroentatkei 

Completely documented Assembly Language Source files included. ALL 4 
Programs (FLEX. SKDOS. 8" or 5 m ) $9950 



A«mlbMUCJt 
O-OtS-M-SXfXM 

r-FLEX.U- UftVTEX 
t't S - < olor tamputmt OC-t 

crj - c*m o«nput*r nix 




South "Last Media 

$900 CassondmSmitk %£. . #Lrj<m, Tn. 37343 




•• Shipplr* •• 
Add 2% USJL <***. XUt) 
***%■ Sanaa *dd 5% 

For*l|»AJniBri»A*die» 
OrGO\I>.S1)lfc*b«0«b 



*rw-» !■ ■ Trid*tTMfh ofMkf.nnft md Mo««rol*f1,KX and irnlPlTJC irt Tradrrn-rki ofT«-hptc«| 



Pjgasai Ca»iHiat*.*SK*PO» It m Trademark of St«-»K S<4tm*t* Sjifami Cwy. 



34 



February 89 



68 Micro Journal 



Telephone: (615) 842-4600 SoUtfl f EOSt ?Media 



'fete*: $106006630 



05-9, llnffOEX, 'JL'LX, S'K'&OS 



COPYCAT from Luddata - Pascal NOT required. Allows reading TSC 
Mini-FLEX. SK-DOS, SSB-DOS68, and Digital Research CP/M Disks 
while operating under SK-DOS . FLEX 1.0. FLEX 2 0. or FLEX 9,0 
with 6800 or 6809 Systems. COPYCAT will not perform miracles, but. 
between the program and the manual, you stand a good chance of 
acconpliihzng a transfer. Also includes same Utilities to help oul 
Programs suppliad in Modular Source Code (Assembly Language) to 
help solve unusual problems. 
FLEX, SK-DOS and CCF 5 M $50J00 FLEX. SK-DOS 8*165.00 

VIRTUAL TERMINAL from S.E. Media - Allows one terminal lo do the 
work of several. The user may start as many as eight tasks on one 
terminal, under V1R1VAL TERMINAL and switch back and forth 
between tasks at will. No need to exit each one; just jump back and 
foith. Complete with configuration program. The best way to keep up 
with those background programs. 

6809 GS-9 * CCO - objact only - S49.95 

FLEX, SK-DOS DISK UTILITIES from Computer Systems Consultants ~ 
Eight (8) different Assembly Language (with Source Code) FLEX* 
SK-DOS Utilities for every FLEX. SK-DOS Users Toolbox: Copy a 
File wiib CRC Emxi; Test Disk for errors; Compare two Disks; a fast 
Disk Backup Program; Edit Disk Sectors; Linearize Free.Qiain on the 
Disk; prim Disk IdotfiTic*rion; and Son and Replace the Disk Diiectory 
(in sorted order). ~ PLUS ~ Ten XBASIC Piograms including: A 
BASIC Resequencer with EXlttAs over "RENUM" like check for 
missing label definitions, processes Disk to Disk instead of in Memory, 
etc. Other programs Compare. Merge, or Generate Updates between 
two BASIC Programs, check BASIC Sequence Numbers, compare two 
unscquenced files, and 5 Programs for establishing a Master Dimctoiy 
of sevenl Disks, and sorting, selecting, updating, and printing paginated 
listings of these files. A BASIC Cross- Reference Program, written in 
Assembly Language, which provides mn X-Ref listing of the Variables 
and ReurvttJ Woids in TSC BASIC. XBASIC. and PRECOMPILER 
BASIC Programs. 

ALL Utilities incite Source (either BASIC or AL. Source Code). 
FLEX. SK-DOS and CCF - 150J00 
BASIC Utilities ONUtfor UmFLEX - $30.00 

MS-DOS to FLEX Transfer Utilities to OS-9 For 68XXX and OOOS-9 
Systems Now READ - WRITE . DW - DUMP - EXPLORE FLEX & 
MS-DOS Disk. These Utilities come with a itch set of options allowing 
the transfer of text type Hies fromAo FLEX & MS DOS disks. *CoCo 
systems icquiic the D.P. Johnson SDISK utilities and OS-9 and two 
drves of which one must be a "host" floppy, 

•CoCo Version: $69.95 68XXX Version $99.95 

MISCELLANEOUS 

TABULA RASA SPREADSHEET from Computer Systems Consultants - 
TABULA RASA is similar to DESKTOP/PLAN; provides use of 
tabular aom pulaikr schemes used for analysis of business, sales, and 
ecvvKJinJc audition*. Menu -driven; extensive report-generation 
capabilities. Requites TSCs extended BASIC 
FLEX, SK.D0S and CCF. UniFLEX. $50jQO, with Source . $100.00 
DYNACALC -- Electronic Spread Sheet for the 6309 and 68000. 
UniFLEX- $395J00. FLEX, SK-DOS. OS 9 and SPECIAL CCF - S250W 
OS 9 68K- $299.00 



FULL SCREEN INVEVrORY/MRP from Computer Systems Consultants 
Use the Full Screen Inventory System/Ma tefimis Requirement Planning 
for maintaining inventories. Keeps item field file in alphabetical order 
for easier inquiry. Locate and/or print records matdxing partial or 
complete item, orscripion. vendor, or anritaaes; find backorderor 
bdow stock levels. Printouts in item or vendor order. MRP capability 
for the maintenance and analysis of Hierarchical assemblies of items in 
the inventory file. Requires TSCs extended BASIC. 
FLEX, SK-DOS and CCF. UniFLEX - $S0D0, with Source - $100.00 

FULL SCREEN MAILING LISr from Computer Systems Consultants - 
The Full Screen Mailing List System provides a means of maintaining 
simple mailing lists. Locate all record* matching on partial or complete 
name, city, state, zip. or attributes for lisiings or Labels, etc, Requires 
TSCs Extended BASIC. 
FLEX. SK-DOS and CCF. UniFLEX- $50J00. with Source - $100J0Q 

DIET.TRAC Forecaster from &£. Madia - An XBASIC program that plans 
a diet in terms of either calories and percentage of carbohydrates. 
proteins and fats (C P G%) or grams of Carbohydrate. Ptotein and Fat 
food exchanges of each of the six basic food groups (vegetable, bread. 
meat, skim milk, fruit and fat) for a (pacific individual. Sex, Age, 
Height, Present Weight, Frame Size. Activity Level and Basal 
Metabolic Rate for normal individual are taken into account Ideal 
weight and sustaining calories for any weight of the above individual 
are calculated. Provides number of days and daily calendar after weight 
goal and calorie plan is determh»cd. 

FLEX. SK.D0S - $59.95. UniFLEX - $89.95 



GAMES 

RAPIER - 6809 Chess Program from S.E. Media ~ Reuuiies FLEX. 

SK-DOS and Display i on Any Type Terminal Features: Four levels of 
play. Swap side. Pea* scoring system. Two display bowls. Change 
skill level Solve Checkmate problems in 1-2-3*4 move*. Make move 
and swap ckfte*. FT*y white or black. This b osse of the strongest 
CHESS program running on anj mkrocotttpufcr, estimated USCF 
Rating 1600+ (better than most 'club' players at higher levels) 
FLEX. SK-DOS and CCF - $79.95 
NEW 

MS-DOS/FLEX Transfer Utilities For 68XXX and CoCo* OS-9 Systems. 
Now Read. Write. DIR, Dump and Explore FLEX A MS-DOS Disks. 
Supplied with a rich set of options to explore and transfer text type files 
fromAo FLEX and MS-DOS disks. •CoCo OS 9 requires SDISK 
utilities & two floppy drives. 
CCO $6995 63XXX OS-9 $99.95 

MS-DOS and Macintosh 
Software at Discounted Prices 

"Call for prices, U"U be worth the savings. " 

(615) 842-4600 



O • OS <f, S - Sfc*D03 

r«n.tx,iuut«iu 

CO m Cekm ni isi T Q§.t 

cry ■ dm- cime mn nsx 




South 'East Media 

5900 CanandmSmUk tf. ■ 9fvo<m, Tn. 37343 




r rfl.»arr r ire" 



•• Shipping •• 
am 1% lLa\A. (ps«. tut) 

ft*4pSarfe»A44S« 
fWrttjp Akn^ AM IS* 
OrCODiSaiSf^Oat 



*Qt*» ta ■ TraJffmrit of Mknwun in4 Mp4«»rob ^fTEX vr\4 L'ntFLEX »r* Tr*4*m*rln of T^Mta! Sjrtn 



MltBMto-'^K'DOS toiTradwMrfc ofSurU Software gymim Oar*. 



66 Micro Journal 



February 69 



35 



Figure 6 Cache Organization 



»l**0' ? 



Lope*' AAJ'#v« 



Ptxjs interlace 



J-T^ 



#hVi it 






1 









• 


r .'* 


r 






f 




* 


y 



4 ■ 






Ptryicat 






a:tiil|flj 



priKtmKi' ♦ • 



Mb** 3 

JL 



A00r*f * B H 3 ? 
(Wotf S#lKtl 



SUM a. 






0*t*Lr**3i 



supplied to ihc P-Bus interface to be 
returned to the processor. 

The line structure of the cache, 
while providing prefetching of code/ 
daia, makes best usage of M-Bus burst 
mode (block transfer) and nibble- 
mode memories. The number of lines 
per set also can drastically reduce the 
probability of replacing a cache line 
that is going to be accessed in the 
immediate future. 

The cache follows ihc LRU (Least Re- 
cently Used) line replacement rule 
wilhin a set. It keeps a record of the 
exact sequential order of line accesses 
in a set so lhat the line that is least 
recently used can be replaced when a 
cache miss occurs. LRU logic updates 
the line use order each lime a line is 
accessed or replaced. When a hit oc- 
curs, the line that is accessed is marked 
as most recently used, and ihc order of 
the 4 lines in ihc set is recomputed. 

To support fault tolerance, each 
cache line can be tested and disabled 
via the disable bit by system software, 
if found defective. 



HH3< 1? 



I 



MB* *m«mx 



Cache States 

And Memory Coherency 

The CMMU offers two methods for 
updating memory; copyback and 
writethrough. In ihc writcihrough 
mode, a cache line is written back to 
memory every time it is modified, 
keeping memory always consistent 
wilh ihc cache content The M-Bus 
uaffic can be high when ihc cache 
functions in this mode. The copyback 
policy can be used 10 maximize mem- 
ory performance and to reduce bus 
traffic. 

Under this policy, cache writes are 
written to memory the first time the 
data in the cache is written (write 
once); subsequent write to the same 
location arc not written to mcmoiy 
until the cache line is flushed (invali 
dated or replaced). Ibis delay in up 
dating mcmoiy means that the contcn 
of memory is not always consistcn 
wilh lhat of the cache, making it ncccs 
sary to have a bus monitoring mccha 
nism that can tell the cache when a bus 
master tries to access stale global 
(shared) daia in memory. This allows 
the cache to update memory before 
allowing oihcr bus masters to try and 
access the shared data again. The 
CMMU supports such M-Bus "snoop- 
ing" capability, to be described in de- 
tail in a later section. 
The copy back policy requires lhat 




















r* i 


1 




I 






/ 

* 


,i i i 


\M 


1 


" 


* 


jtm 


Lew 




Wot: ? 




OutM> 


Lias 1 








MM 




l™? 








. 


D**t*> 


Lm*3 










Vim 









only one cache in a muliicachc system 
has a modified copy of any global data. 
The two valid bits pertaining to a line 
define the four states of a line as fol- 
lows: 

1 1 _ Invalid: The line contains 
no meaningful daia 
10_ Shared Unmodified: Other 
caches may have a copy of ihis line, 
and ihc line is not modified with re- 
spect to memory. 

00 _ Exclusive unmodified: Only this 
cache has a copy of ihis line, and the 
line is not modified with respect to 
memory .01 _ Exclusive modified: 
Only this cache has a copy of ihis line, 
and the line is modified with respect to 
memory. 

The cache control circuitry updates 
these valid bits on a cycle by cycle 
basis as the cache lines arc being ac- 
cessed, making the proper state transi- 
tions, influenced by the global and 
writethrough bits penaining to ihc data 
being cached. 



36 



February '89 



68 Micro Journal 



M-Bus, 

the user's interface to the 

88000 family 

The M-Bus is ihc user's pathway to the 
88000 family devices and the 88000 fam- 
ily 'spathway to externa) physical memory 
(refer lo figure 7). The M-Bus is a 32 bit 
wide synchronous bus that multiplexes 
address and data on ihc same 32 bits and 
operates at the same clock frequency as the 
88200. It is designed to support multiple 
users and has the ability to function as 
cither a bus master or as a bus slave. Ihc 
M-Bus includes many features which al- 
low efficient operation in such environ- 
ments as multiprocessor, multiuser and 
fault tolerant systems. Prior to discussing 
these features however, it would benefit 
the reader to have an understanding of ihc 
various signals that make up the M-Bus 
and their functions. The following is a 
brief description of the M-Bus signals: 



AD0-AD31 (M-Bus Address/Data) 
fonn the multiplexed address/data bus. 
The function of these signals depends on 
the M bus transaction phase (defined by 
the M-Bus control signals). During the 
request phase, the MC88200 drives the 
physical address onto AD31 -ADO. During 
the data phase, AD31-AD0 arc the data 
input/output lines, 

ADP0-ADP3 (M-Bus Address/Data 
Parity) indicate the parity of the M-Bus 
address/data lines. The MC88200 uses 
even parity (parity can be disabled by 
software), checking parity on reads and 
generating parity for addresses and mem- 
ory writes. Each parity signal is associated 
with one byte of the address/data bus, 

C0-C6 ( M-Bus Control), when the 
MC88200 is the bus master, define the 
transac lion phase and type of transaction. 
Ihc CO signal defines whether the phase is 
address (address on AD31-AD2) or data 
(data on AD3 1-AD0). During the address 
phase, CI-C5 indicate intent to modify. 



read/write, M-Bus lock, cache inhibit, 
and global address. During the data 
phase, C1-C5 indicates cnd-of-rcqucst. 
read/write, and selected bytes. 

These signals aic inputs during M-Bus 
snooping and when the MC88200 is ac- 
cessed as a slave device. 

CP (M-Bus Control Parity), when the 
MC88200 is the M-Bus master, indicates 
the even parity of the M-Bus control sig- 
nals. 

ST0ST3 (M-Bus Local Status) i n - 
dicatc the local M-Bus status when the 
MC88200 is being accessed as a slave 
device (register access), or when the 
MC88200 is snooping a global M-Bus 
transaction. These signals arc inputs dur- 
ing reset and arc used to initialize the 
CMMU I D register. 

SS0*-SS3* (M-Bus System Status), 
are the reply generated by M-Bus slaves 
in response to the MC88200 address and 
data phases. 



To othar > 
M Bus masiars 



Signals 



*m 






V V 



MC782Q0 
<XMJ 



Arbitration 

Logic 



7* — VV A -TV 



SYSTEM ARBITRATION 



QOTTRCL 



21 



n 



SYSTEM STATUS 

7T 



in 



INFORMATION (*ddre$s/daia) 



s 



77 



v v 






Slave Controller 



Ptriphanl 

or 

Memory 



parity 



parity 



Figure 7 M-Bus Block Diagram 



68 Micro Journal 



February 89 



37 



BR (M-Bus Request) isasscrtcd by ihc 
MC88200 to request M-Bus ownership. 

BG (M-Bus Gram) is generated by 
external M-Bus arbitration logic in re- 
sponse to a bus request. The MC8820O 
recognizes this signal only if the M-Bus is 
not busy (BB* signal negated). 

B A (M-Bus Acknowledge) is asserted 
by the MC88200 when it has received a 
busgrantinresponsetoabus request This 
signal allows the MC88200 to accept and 
maintain bus ownership while making 
memoryaccesses. It isdrivenactive when 
BB is negated. 

BB* (M-Bus Busy) indicates that some 
other M-Bus device is currently the bus 
master, it qualifies the bus grant signal. 
For an MC88200 to become the bus mas- 
ter, it must receive a bus grant signal from 
the arbitration logic, and BB* must be 
negated (no other device is ihe M-Bus 
master). 

AB+ (M-Bus Arbitration Busy) indi- 
cates that one or more M-bus devices arc 
performing a bus request. It is an input to 
the MC88200 that indicates contention for 
bus ownership is talcing place. 



MULTIPLE USER OPERATION 

Now that the reader has a brief descrip- 
tion of the M-Bus signals, it will make it a 
little easier to follow the discussions con- 
cerning ihe features provided to the user 
by the M-Bus. The M-Bus opcraiion has 
four distinct events that take place each 
cycle; bus arbitration, address 
selection .data movement and status re- 
sponse. As mentioned earlier, the bus is a 
multiplexed synchronous bus and all ac- 
tions on ihe bus arc synchronized to ihe 
rising edge of the clock (refer to figure 8). 
In operations where only one word of in- 
formation is transferred, it takes two clock 
cycles to complete the transaction, but 
nansferring information on the bus in 
'block modc\ only takes n+ 1 clock cycles 
to compleie(in the case of the CMMUs, 
"block mode* transfers four words at a 
lime). The CMMUs perform all cache 
updates and copyback operations in the 
block mode. Block mode is performed on 
quad-word boundaries, i.e. the first word 
transferred starts at address 
hcx"XXXXXXX(T and ends at 
hex"XXXXXXXC\ At the end of each 
address and data transfer, including block 
transfers, all M-Bus participants place 
their status word onto the bus. This se- 
quence of actions takes place on every 



elk 



MCE (M-Bus Checker Enable) d e - 
termines the operational mode (master/ 
cheker) of the MC88200 M-Bus. In the 
checker mode of operation, all M-Bus 
signals arc placed in the high-impedance 
state and all M-Bus outputs arc monitoicd 
as inputs. The master operates noimally. 
The checker compares its internal results a d d r 
with the results read as inputs. If a mis- 
match occurs, the checker asserts ERR. 
ERR can be used to prevent the memoi-y 
access fiom corrupting the code, data or i/ 
o system. 



cycle lhat requires access of data. The fol- 
lowing discussion will familiarize the 
reader with the actions that take place 
within each major operation on the bus. 

BUS ACCESS 

M-Bus transactions take place be- 
tween one bus master and chic or more bus 
slaves. Bus mastership is determined 
through arbitration while slaves arc deter- 
mined by address decode. The arbitration 
signals offered on the M-Bus allow the 
system designer the flexibility to imple- 
ment variety of schemes as long as the 
end result is only one bus master being en- 
abled at a time. The five signals supplied 
for bus arbitration (described earlier in the 
signal descriptions) arc used to access the 
M-Bus. These signals woik in coordina- 
tion with each other to provide efficient 
access and depaiture on the bus. Below ( 
refer to figure 9) is a simple timing dia- 
gram of the interaction of these signals: 

It is interesting to note thateven ihough 
the M-Bus allows only one master on the 
busata time, slave devicesare allowed the 
opportunity at the end of each address or 
data cycle to respond with status condi- 
tions that could potentially cause the cur- 
rent bus master to end its tenure and re- 
arbitrate for the bus at a later time. This 



/ Add rail Wread data W addxeis \/*nte data\ 
\ /\ A /\ / 



/ coiwvand \/r*ad qual W cotimand \/«rite qual 
C0-C6 \ A A A / 



St0-St3 t crrel * tat W(**d stat W cnid stat Wwnte stat\ 
\ A A A / 



SS0-SS3 / and scat \/r«ad stat \/ and itat \/wcit« stat 
\ A A A / 



Figure 8 M-Bus General Timing 



38 



February "69 



68 Micro Journal 



ability for slaves to impact the bus opera- 
tion will be discussed a little later. As each 
potential bus master requires access to the 
bus ihey assert BR to the bus arbitration 
devicc(implementcd externally). AB is 
the norcd output of all BR on the M-Bus 
(also implemented externally). The arbi- 
tration device will then assert BG to the 
next potential bus master based on its own 
priority scheme. The device receiving the 
BG will gain control of the bus as soon as 
the BB signal is dcassencd. BB is dcas- 
scrtcd when the current bus master re- 
leases its B A. It is possible that during the 
time gap between receiving BG and BB 
being dcasscrtftd that the bus master elect 
could lose access to the bus due to a higher 
priority device being given BG and their 
BG being removed or that a bus cycle 
ended in a status of retry or error. 1 n either 
case the master elect would have to re -ar- 
bitrate for the bus. Once a device does 
receive ownership to the bus ihey will 
assert B A. The bus master may retain the 
bus until other devices requiie access ei- 
ther for new transactions or to recover 
from exception conditions. Once the cur- 
rent bus master loses the bus. there is an 
option in the CMMU that will allow that 
device to immediately reassert BR (Prior- 
ity Request) if necessary or wait until AB 
is dcasscrtcd (Fairness protocol) before 
the BR is asserted. 



ADDRESS GENERATION 
AND DETECTION 

The request (address) phase of a bus 
access is indicated by control bit GO being 
asset led . At the end of the request phase, 
CO is deasscrtfd and the bus operation 
enters the data phase. In the master mode 
of operation, addresses are normally out- 
put to select a slave device. In certain con- 
ditions however, the address generated 
may contain the control register addicss 
and ID of one of its own internal registers. 
This is called a PIRA (P-Bus Internal 
Register Access). In this particular condi- 
tion, the CMMU acts as both a master and 
a slave. It acts as a bus master by arbitrat- 
ing for the bus and generating the address; 
and acts like a slave by decoding the ad- 
dress. On each single word access, the ad- 
dress is output and a reply is received to 
either validate that address or to indicate 
an exception condition. In block iransfer 



elk 



bb 1 



ab 1 



ba 



br 



bg 



i i i i i i * i i i i i 
i i ■ i » i * i i i i i_ 



Figure 9 Bus Arbitration Timing 



mode the address is generated for the first 
cycle but not for the last three cycles. It is 
the responsibility of both the master and 
the slave to update their respective add/ess 
counters internally while performing 
block transfers. The CMMU, while func- 
tioning as a slave device, docs not use a 
chip select in the normal sense, but has an 
ID which is loaded into the CMMU at 
power-up and can be loaded by software as 
well. This ID is checked on each request 
phase to determine if that access is in- 
tended for that particular CMMU. The ID 
has to accompany every address that is in- 
tended to access aCMMU from the M-Bus 
or the P-bus. The request phase is termi- 
nated when the OK reply is received via 
SS0-SS3. 

READ AND WRITE ACCESS 

Data transfers across the M-Bus arc 
accomplished via reads or writes in either 
a single or a block mode. In single word 
transfers the data is preceded by an address 
and followed by the appropriate status to 
confirm the operation. If the user intends 
on transferring less than one word of data, 
a single word transfer is executed with the 
appropriate byte strobes enabled. In block 
mode, the data is transferred in burst of up 
to four words. A request phase precedes 
the first word transfer with an address that 
is byte aligned. Each word transfer is fol- 
lowed by a status condition that qualifies 
that word. Block transfers arc teiminatcd 
by the master asserting an End of Request 
(control pin CI ) in thedataphascofthe last 
word or by the slave asserting an End of 
Data status for the last word it can handle 
viaSS0-SS3. 



STATUS REPLIES 

One of the very unique features of the M- 
Bus operation is the status reply phase. In 
this phase, all operations are validated, 
invalidated or redirected depending on 
the response to that phase by each partici- 
pating slave device. These status replies 
are communicated on the bus via the sys- 
tem status lines described earlier. The in- 
formation conveyed by this status mecha- 
nism is how the M-Bus is able to support 
such features as multiprocessing. The 
status lines are mutually exclusive with an 
inherent priority defined through the use 
of active low level inputs. The status reply 
with the most active low inputs has high- 
est priority. 

Every request and data phase has a 
corresponding status response presented 
on the M-Bus at the end of that phase. 
Since only one master is active at a time, 
it is the responsibility of each active slave 
to place the appropriate status on the bus 
at the end of evejy phase (refer to figure 
8). There are five possible responses that 
can be placed on the bus by participating 
slaves; I) Error 2) Retry 3) Wait 4) End of 
data 5) OK. 

The Error response is normally placed 
on the bus by a slave device that has 
detected a parity error, but system im- 
plementation allows the developer of M- 
Bus slaves to apply other eiror conditions 
to this response. When an error is de- 
tected, the bus master loses ownership of 
the bus and has to return to the bus arbi na- 
tion phase. 



68 Micro Journal 



February "89 



39 



The next status response, Retry, is the 
normal mechanism used i n multiprocessor 
systems to handle Bus 

Snooping(Snooping is described in more 
detail later). It is also possible for Retry 10 
be used in certain applications as a priority 
mechanism for higher priority devices to 
gain access to the bus as soon as it is 
required. 

The Wail response is used to delay ihe 
progress of either a request or data phase 
for various systems reasons. It can be 
applied by memories wilh slow access 
limes or by memory controllers who are 
capable of setiingup blocks of memory for 
burst opeiations. CMMUs that are Snoop- 
ing will asseit Wail states to do addiess 
interrogation. As long as Wait slates are 
asserted by any slave device, the current 
cycle, whether it is a request or data phase, 
is repealed on the bus. 

End of data (EOD) is used by partici- 
pating slave devices in the data phase to 
terminate a burst transfer if the burst can- 
not be successfully completed. It will also 
be asserted by CMMUs if a burst is at- 
tempted by another device and that burst is 
not quad-word aligned. In ihe request 
phase EOD is decoded as a proper OK 
response. EOD also allows a slave to re- 
spond with a single word when a CMMU 
requests four words. The CMMU will ihen 
request ihe next three words one at a lime. 

OK is the normal response lo opeia- 
tions that complete successfully, whether 
they are single word transactions or burst 
transactions. 

BUS SNOOPING 

Bus snooping is the unique feature 
suppoitcd by the 88200s lo facilitate 
multiprocessing through ihe use of shared 
(global) memoiy. For those not familiar 
with the tenn Bus Snooping, it is ihe abil- 
ity of caching devices to monitor ihe 
memoiy accesses of cuirent bus masters 
and to intervene if the memory location the 
master is reading or writing is shared 
memory and has been modified by that 
caching device, but not updated in mem* 
oiy. When a slave device asseits Retry in 
response to a memory access, the bus 



master will immediately relinquish ihe 
bus and wait one complete cycle before rc- 
arbitrating for the bus. The one cycle of 
dead lime is to allow the device who as- 
serted Retry to gain control of Ihe bus and 
update memory. In order for this snooping 
function to occur, snooping has to be en- 
abled in the CMMU and the memory loca- 
tion being snooped has to be flagged as 
global. Snooping CMMUs monitor only 
those bus cycles that are accompanied by 
the global bit (C5) being set Each request 
phase is given an Ok reply by snooping 
CMMUs. However, the daia phase of a 
global transaction is given two Wait stales 
to afford the snooping CMMUs time to 
determine if there is a match (snoop hit) in 
their cache tag. If no match is made, the 
snoopingCMMUs will respond to thenext 
data phase with an OK. If a maich is de- 
tected and that location is dirty (contains 
data that is different from that in memory), 
the detecting snooper will asseit Retry on 
thebusandthenBR.Thenextcyclewillbe 
given lo the snooper who in turn will 
update memory wilh the correct informa- 
tion. If the snooped transaction is a CPU 
read, the data is copied back to memory, 
but retained in the cache of the snooping 
CMMU with different status. If the 
snooped transaction was a CPU write, the 
data is copied back to memoiy and re- 
moved from the cache of the snooping 
CMMU. Snooping is absolutely essential 
in multiprocessing systems that use the 
"write back" policy for their respective 
CMMUs. 

FAULT TOLERANT SYSTEMS 

There are several features supported on 
the M-Bus lhai will benefit fault tolerant 
systems designs. Features such as output 
pin comparison, shadowing and parity 
generation and detection help the sysiem 
implementer to acheive a more reliable 
sysiem at a lower cost. 

Every output pin on the M-Bus has an 
internal comparator that compares the 
output value on the actual pin to the input 



value to the oulput driver. Any mismatch 
will drive the ERR pin active indicating a 
bus fault. 

Shadowing is implemented on the M- 
B us by setting a specific input pi n (MCE) 
on the CMMU. When MCE is set, all M- 
Bus signals are placed in the high imped- 
ance stale and all outputs arc moni tored as 
inpuis. The shadowing CMMU monitors 
all of the transactions from the master and 
if any mismatch occurs, the ERR pin is 
asserted. 

Parity generation and detection is en- 
abled by setting a control bit i n the Sysiem 
Control Register of Ihe CMMU. When 
enabled, even parity is checked for all 
read daia phases as well as for the control 
signals that accompany each cycle. Parity 
is generated on all request phases and 
write data phases along wilh paiity for ihe 
outgoing control lines C0-G6. Any parity 
errors detected on the M-Bus are reported 
back to the processor via the System 
Status Register. 

The CMMU also has an internal fea- 
ture that allows the user to test each line of 
Ihe cache and to diable any cache lines 
that lest faulty. This provides the user with 
a mechanism that does not require the 
storing of a fault map for thecache that has 
to be icferenced on each access. 

As can be seen by this brief look into 
the features and operation of the 88200 
and associated M-Bus* Motorola has 
created a very powerful, yet straight for- 
waid approach to handling the many 
systems concerns that normally sunound 
the design of performance oriented appli- 
cations. For a more detailed understand- 
ingofthe featuresand functions described 
in this article, Motorola has available 
Technical Summaries and User's Manu- 
als for the 88100 and 88200 as well as 
wording devices and all necessary soft- 
ware such as compilers, assemblers and 
functional simulators. 



FOR THOSE WH 



UN lit I) TO KNOW 



68 MICRO 
JOURNAL 



TM 



February '69 



66 ftfero Journal 



iw — •m 








r Mac-Watch 

ForTboe 
Neediof to 




SI 
















DQQGC C 
333! 




W 11 


L 




' '- 



Tne Macintosh- Section 
Reserved as 

And ours. 




OF MICE AND MACS • • • 

Reviews of Stepping Out n and 
Quickeys; Information on an up- 
grade to ImageStudio 

By James £. Law 
1806 Rock Bliif Rd. 
Htmon TN 37343 

How Many Mice? 

Its always inteiesting to check out the Macin- 
tosh softwaie leviewed in other magazines, espe- 
cially if it is for a product I have reviewed or which 
I use. I sometimes llnd myself saying. "How can 
they give 5 'mice* (out of a maximum possible of 5) 
to that dog of a program!" On other occasions it's 
"That guy is obviously prejudiced against the soft- 
ware. He's picky!" The truth of the matter is that 
the relationship between a user and his software is 
a veiy personal thing and there is room for honest 
differences of opinion. 

Speaking of differences of opinion, why does 
nearly eveiy program reviewed by some magazines 
rate a 'superior* rating. Of the 24 programs listed 
on a single page of ratings in a certain Macintosh 
magazine. 22 were rated 4 mice or better and 6 
programs were rated 5. Is the cunent batch of 
Macintosh softwaie that good, or do we just have 
low expectations? Surely it doesn't have anything 
to do with advertising dollars? I'm glad to say that 
the management of Micro 68 Journal has never 
tried to iniluence the conclusion of my reviews, 
even In the case of those few that were quite 
negative. 



A Review of Stepping Out n 

The advertising hype for Stepping Out usually 
says that it appeases ones desire for a large moni- 
tor. If so, It would be well worth its modest price. 
We all get tried of looking at the Macs little 9" moni- 
tor. (I Just don't get so tired of it that I want to spend 
$1500 for a large-screen monitor) The truth is that 
Stepping Out's function is to allow you to easily 
move around a document that is larger than the 
screen. As the mouse is moved so that the cursor 
approaches the edge of the screen, the screen 
image scrolls smoothly to expose more of the docu- 
ment. A secondajy function of Stepping Out is to 
piovide for reduced Images of your document for 
page previews and magnified views for detail work. 
Both views are interactive, that is. you may per- 
form work while the image is leduced or magnified. 

The first version of Stepping Out was generally 
accepted as being a masterful bit of coding, but 
some users complained about Jerky scrolling and 
slowed operations. The primaiy purpose of the 
latest revision, Stepping Out (I, was to improve 
performance in these areas. To a very laige extent, 
this effort by Berkeley System Design. Inc., was 
successful. Stepping Out II scrolls quickly and 
smoothly. While there is still a noticeable reduc- 
tion in screen refiesh time, it was not enough to be 
objectionable. 

Stepping Out II is an INIT. that is, it must be 
loaded in the system folder and then, upon restart- 
ing your Mac, it is ready to use. If you open the 
control panel you can then turn Stepping Out on 
and choose the desired parameters. You may 
choose a variety of document sizes from full size 
display (i.e., 8-l/2x 1 1 ) to blueprints (i.e., 3 f t x 2 
ft). If none of the pre-entered sizes suit you. you 
may set up a custom size. The control panel also 
allows you to set parameters for reductions and 
enlargements and to specify the amount of memory 



66 Micro Journal 



February 89 



41 



to be reserved upon start up for Stepping Out II. 

Stepping Out II then constructs an "image" in 
memoiy of the size page you specified. As the 
cursor appioaches the edge of the monitor, the 
^reconstructed* image is fed to the screen so as to 
provide the perception of smoothly scrolling to 
show more of your document. 

I tried Stepping Out II with page layout pro- 
grams (PageMaker, ReadySetGo), word proces- 
sors (Mac Write, WordPerfect), desktop presenta- 
tion programs (ReadySetShow, PowerPoint), and 
graphics programs (SuperPaint, Canvas), and 
veiy few incompatibilities were identified. The 
only problem noted was that PowerPoint windows 
refused to scroll properly under Stepping Out II. 
Of course, programs with non expandable win- 
dows like MacPaint and MacWrlte gain little from 
the use of Stepping Out II (although you can 
quickly scroll up and down the page in Mac Write). 



mmmmmmm* 




o 



I Stepping Out II ZZ, 



\ 1 

Pyro^ 



Q 



QuicK*ys T 




3.2 



n. 



O 



justable. This feature works well. The reduction 
feature does not work so well. Only 25%, 50%, and 
75% reductions are allowed. The resulting screens 
are quite unattractive as the desktop background 
turns black. 

Stepping Out II works with any MacPlus, SE. or 
Mac II. It is advertised to work with all standard and 
laige Mac II monitors except for 24 bit color. It does 
not work with many of the big screens used with the 
MacPlus and SE. Stepping Out is designed to be 
compatible with all software that works with laige 
screen hardware. 

Stepping Out II seems to work, as advertised, 
with the few problems mentioned above. The ques- 
tion is whether you need extra help in moving 
around your documents. If scioll bars and built in 
pusher hands' aren't good enough for you, perhaps 
you need Stepping Out II. 

Back to the business of assign- 

* ing overall ratings. . . Five mice is a 

lot of mice. I would give Stepping 
Out II, 4 mice, a solid value; but with 
room for improvement. 



QOn 20 



Choose your screen: 



20" workstation monitor 
blueprints (5 ft. x 2 ft.) 
Copy of dual page layout 
dual page layout 

letter (wide margins) 



o 



New 



[Open] 



8.5 x 110 inches 



Requires 1 29K 



Always Reserve |QK | (|] (at startup) 



Reductions : 



Enlargements : 



O O <D 

25% 50% 75% 



2x 



Custom 



©1988 
berkeleu system design, inc 



How Quick U guickeya? 



Stepping Out Jl Control Panel 

If you specify a very laige document size, it can 
be frustrating to work in one corner while the 
memo bars and tool boxes are at the other corner. 
Stepping Out II allows you to lock memo bars and 
tool boxes into place so lhat they are always 
visible, no matter where you scroll in the docu- 
ment. The feature does not appear to work with 
Canvass hiearchical menus that pop out into the 
area reserved for the document itself. 

Stepping Out II makes it easy to magnify por- 
tions of the scjeen up to 16 times its normal size 
for close up work. The size of the area to be 
magnified and the degree of magnification is ad- 



Now I don't want to give up my 
mouse, but sometimes it's a pain. 
In the middle of a series of keyboard 
actions. I have to stop, use the 
mouse, the return to the keyboanl. 
In the Macintosh Plus manual, 
theie is a pictuie of a Mac user 
sitting way back in his chair away 
from the screen with keyboard in 
his lap and feet on the desk. We all 
know that in the real world, this 
pose wouldn't last for over a few 
minutes before he would have to re 
position himself to operate the 
mouse. Wouldn't it be nice if some 
of those mouse operations could be 
handled from the keyboard? 

Well, they can with Quickeys 
from CE Softwaie. Mouse actions such as choosing 
menu items, clicking dialog boxes and scrolling the 
screen can be assigned to a key or combination of 
keys on the keyboard. A single keyboanl stroke can 
also be programmed to perform other aclions such 
as enteiing a passage of text. 

Quickeys, is an INIT and is activated by placing 
it in your system folder and restarting your Mac. 
You then, at any time, have access to the Quickeys 
control box by typing OPTION-CONTROL-RE- 
TURN. The combination of keys, like all other 
Quickey pieestablished by key combinations, may 
be easily changed to suit the individual user. 



42 



February *89 



68 Micro Journal 



© 



Quickey s T 



Cut 



[ Copy ] 



[ Paste 



Clear 



Quickey entries are made by selecting one of 1 1 
options under the "Define" menu. A very brief 
overview of the possibilities are as follows: 

L TEXT — Assign a string of text to be 
displayed when a key is typed. 

2. FILE — Close the currently open file and 
open another application or document without 
going through Finder. 

3. MENU/DA — Open any DA or make any 
menu selection with a key stroke. 

4. ALIAS — The typing of a 
specific key will cause a different 
character to be displayed. Use this 
feature to reorganize your key- 
board. 

5. CLICKS — Use a keyboard 
command to replace any mouse 
click and dragging operation. 

6. SEQUENCES — String up 
to 30 Qulckeys entries together into 
a powerful macro. 

7. Buttons-Use a keyboard 
command to click any button. 

8. MOUSIES — Use key- 
board commands for specific ac- 
tions such as zoom or close win- 
dow, page up or down, or line up or 
down. 

9. SPECIALS ~ Use key- 
board commands for miscellaneous 
actions such as shut down, re- 
start, or select rear window. 

10. DATE /TIME — The des- 
ignated key combination makes 
the current date and /or time appear 
in one of a number of formats. 

I 1. F KEYS ~ Select an FKEY with the 
designated key command. 

Each Quickey key stroke can be assigned to a 
"universal set" (it is always available for all applica- 
tions) or may be assigned to a specific application. 
In cases of conflicts, the key strokes In the program 
specific sets take precedence over those in the 
universal set. 

Tb Illustrate the usefulness of Qulckeys, let me 
tell you how I have made use of it to speed up my 
preparation of viewgraphs with PowerPoint. First, 
I press OPTION-CLEAR to go directly to PowerPoint 
without going thiough the Finder. OPTION and "♦" 
or "•" lets me flip through my slides from the 
keyboard. With OPTION-Z. I zoom back to review 
the entire slide or with OPTION -A 1 can expand the 
slide to full size. OPTION + (arrow key) allows me 
to quickly page up or down, right or left. OPTION- 
COMMAND - (arrow key) lets me move more pre- 
cisely a line at a time. Finally, when I press 
OPTION-RETURN, my Mac immediately shuts 
down [after giving me a chance to save) without 



going through the Finder. 

Since I assign the key strokes. I can select 
something that makes sense to me. It's easier to 
lemember that way. But if I forget. I can enter 
OPTION -COMMAND -SPACE BAR and a list of all 
my Quickey entiies are displayed. 

Qulckeys is a handy pro-am Even with the 
standard Macintosh keyboard, it is a real time 
saver. Power users and expeiienced typists will 
appreciate not having to take their hands off the 



QuickPaner 



Define 



Yl.l 



opt-R j^ Transfer 
§6opt- spc^ Quick reference 
96opt-. ^ Toggle QuicKeys on... 
opt- del "^ Shu* down 
opt- clr Romans Charts II 
opt -17] Q Bible t 
opt- (*) p| Close window 
opt-l/] Q Zoom window 
skirt-" ^ Double QuKkQuotes 



® Uniuersal 
O Finder 



El Startup icon 



QuiCKEYS" 

© 1987 CE Software, Inc. AH Rights Reserved 



Qulckeys Control Panel 

keyboard to reach for the mouse, I would have to 
rate II at least 4-1/2 mice if I were giving ratings 
based on mice points. 

Image Studio is Upgraded 

Version 1 .0 of Image Studio software from Letrasel 
USA, was named as product of the year by Personal 
Publishing magazine and now an ever more power- 
ful version (1.5) is available. Image Studio allows 
you to produce high quality camera-ready half- 
tones on the Macintosh and incorporate them into 
desktop published documents. The principle im- 
provements in version 1.5 are as follows. 

1. Enhanced Grayscale Capability — 
ImageStudio 1.0 could process up to 64 shades of 
giey but with Version 1 .5, you can manipulate 256 
shades. Obviously the number of shades in a file 
depends on the capabilities of the scanner used. 
But once you have the image in ImageStudio, you 
can take advantage of all 256 shades to line tune 
the image. 



66 Micro Journal 



February '89 



If you have a Macintosh II with an 8-bit 
video driver and a high resolution monitor, you 
can view 102 shades on screen. With the 
Macintosh Plus and SB, you can view 64 shades 
plus white on screen. 



Effects Graymap 




Partial ImageStudio 1.5 Window 

2. Memory Management — Version 1 .5 
provides far more sophisticated memory manage- 
ment techniques which make it possible to work 
with images larger than your RAM would normally 
allow. This is important because scanning with 
256 shades and 300 dpi resolution creates very 
large files, ImageStudio handles this feat by 
creating a working copy of the image on dish. Vou 
can then open a portion of an image at a time while 
you edit. 

3. Scanner Control — You can now drive 
scanners and image grabbers without leaving 
ImageStudio. The "File" menu now includes 



"scanner setup"* to set options and a "scan" 4 
command which activates the scanner or image 
grabber. This arrangement allows you to scan 
directly into RIFF format which has the same reso- 
lution potential as TIFK but with smaller file sizes, 
4, Upgrade of Tbols — Finally, a number of 
Images tudio's tools and commands have been 
enhanced. Fbr example, you can now scroll selec- 
tions past the window boundaries and can con- 
strain selections to squares or straight lines. 

Version 1 .5 of ImageStudio greatly enhances an 
already powerful program. Those of you who have 
occasion to use scanned images should check it 
out. 

Please Feed Me Back Some feedback 

I would like to hear from you on what you would 
like to see in this department of 68 Micro Journal, 
Would you rather see a number of shorter reviews 
or a few more in depth reviews? Is there any 
particular type of software you would like to read 
about? Let me hear from you. 



EOF 




44 



February B9 



68 Micro Journal 



Writing Position Independent 

®and Reentrant Code 
" OT ~°" ,MC ' for the MC68000 Family 



350) Ed Bluestein Boulevard 

PO Box 6000. Austin. Texas 78762 



By Truman T. Van Sickle 



Background 

A multitasking sysiem is an 
computer operating system 
that will allow the seeming 
concurrent execution of 
severaldistinct tasks within a 
single computer. The several 
tasksmight be completely 
independent, or mutually 
dependent in thesense that 
calculations or measurements 
made by one task areneeded 
as inputs to another. For 
example in an industrialcon- 
tiol system, one task could be 
used to set several digitaland 
analog outputs to control a 
machine. A separate butcom- 
municaijng task could 
monitor sense switches and 
analogsignals from the 
machine. The computer 
inputs indicate thestate of the 
machine at any time and 
dictate the next operation that 
the machine must execute. 
The machine slate might be 
stored in an area of memory 
that is accessible byeiiher 
task. With these two tasks 
mnning concurrently, 
theprogrammer will have a 
table with the current slate of 
ihemachine. It is not needed 
to scan the input status as 
isdone with programmable 
controllers or single tasking 
machinesto determine the 
current machine status. The 
job of theprogrammer is 



easier in this case with a 
multitasking systemthan with 
a single tasking system. 

Some computers employ 
memory management A 
memory manager isa hard- 
ware feature that examines 
the logical address of 
eachcomputer transaction and 
determines the correct 
physicaladdress for this 
activity. When a program- 
mer writes aprogram, it is 
usually started at an address 
zero. When thisprogram is 
executed, this beginning 
address must be changed] f for 
no other reason than the 
MC68000 family of 
partsdedicate the first 1024 
bytes of memory to an 
exceptJonvector table. When 
the computer has no memory 
manager, it isrequired that the 
programmer allocate memory 
for the vaiiousmemory 
resident tasks. In this case, it 
might be necessaryto place 
the code to be executed 
anywheie in memoiy 
wherethere is sufficient 
unallocated memory to hold 
the task.Code thai can 
execute when placed any- 
where in memory i sea I led 
position independent 



Rccncrant code is a feature 
that will allow more than 
onetask to appear to execute 
a routine at the same time. 
Theconccrn with reentrant 
code is that the machine and 
memorystatus associated with 
the code be secure enough 
that theroutine can be arbi- 
trarily stopped at any point of 
itsexecution and another task 
can stait executing the same 
codewith no interference 
between the tasks calling the 
routine. 

Features like reentrancy and 
position independence were 
notreally considered neces- 
sary for microprocessors until 
theMotorola MC68000 
family of paits became 
available. The mainneed for 
reentrancy comes about when 
multitasking operatingsys- 
tcms are used. Position 
independence is desirable 
fonnany programs in a 
multitasking system, espe- 
cially amultitasking system 
with no hardware memory 
management. Thepurposeof 
this paper is to describe the 
need for bothposition 
independent and reentrant 
code, and to demonstratehow 
easily these important 
features are implemented 
with theMC68000 family 
architecture. 



Reentrant Code 

Reentrant code means that 
several different tasks can 
call areentrant module, 
seemingly at the same lime, 
withoutinterfcrence. Suppose 
that a multitasking system 
isopcraung, and at the curient 
instant, a specific routine 
isbeing executed. Let us use 
a program like a soft ware- 
floating point multiply as an 
example. Task A is in 
theprocess of computing the 
product of two numbers. At 
anytime, a clock interrupt can 
occur and removecontrol of 
theprocessor from Task A to 
the task dispatcher of the 
operatingsystem. When such 
an operation occurs, the task 
dispatchercan, and usually 
will, change the running task 
from Task A toanother task 
that is on the ready lisL Let 
us assume lhatTask B is 
placed in control of the 
processor, This processin- 
volves first saving the status 
of the computer for Task 
Aand then restoring the 
previously saved status of the 
machineat the last lime Task 
B was in control. Task B is 
nownwning. 



68 Micro Journal 



February "89 



45 



To make the problem more 
interesting, let us suppose 
that thcsoftware floating 
point multiply is a globally 
shareableroutine. Globally 
shareable means that anytime 
a softwaremulliply is needed, 
the same routine will be used 
byanytasL Only one copy 
of the multiply routine will 
be sioredin memoiy. Evety- 
Ihing is okay until Task B 
needs to executed software 
multiply. At this time, a 
routine must be enteredthat 
was being executed by Task 
A when Task B took control 
ofthe processor. There can 
be no special provisions at 
iheexit of Task A control to 
save the status of the rout- 
inebeing executed, The 
normal exit procedure at task 
switch isto save the machine 
status. Therefore, the status 
of theexecuting reentrant 
routine must be contained 
completely with in the 
machine status at all times. 

For the most part, Ihe 
machine status contains the 
program status. The Data and 
Address Registers aie all 
saved as partof the machine 
status as is the content of the 
Condition CodeRegister and 
the Program Counier. The 
only missingcomponents of 
the program status are Ihe 
values contained indata 
storage needed for the 
execution of Ihe routine. 

A simple way to avoid 
storage problems is to store 
all daiain the memory space 
of Ihe calling program rather 
than tohave specilied data 
space in the executing 
loutine. Thesedata are all 
stored on the stack of the 
calling program, andwhen the 
stack pointer is saved as part 
of the normal machinestatus, 
all volatile data associated 
wilh the execulingrouline is 
automatically saved in 



memoty associated with 
thecaiiing program. When 
Task B starts to execute Ihe 
floatingpoint multiply, any 
necessary volatile memory 
will beassigned in the Task B 
memoty space, and the data 
saved whileTask A was being 
executed will be safely saved 
in the memoryspace of Task 
A. This opeiation can be 
repeated indefinitelyandthe 
number of tasks that can 
simultaneously access agiven 
reentrant routine is unlimited. 

Another application of 
reentrant code is to imple- 
men [recursion in a routine. A 
function is said to be recur- 
sivewhen it calls itself. If a 
routine is reentrant, it makes 
nodiffetence whether Ihe 
routine calls itself or it 
isreentered by another 
program after a task switch. 
In eilhercase Ihe handling of 
local storage must allow the 
routine lobe entered while it 
is set up and executing a call 
fromanoiher program. Any 
recursive routine must be 
reentrant. 

Suppose that a multiuser 
operating system is being 
used by several programmers. 
Much of the time that 
programmers silat the 
keyboard they are either 
editing or compiling oras- 
sembling a program. With a 
well designed opeiating 
systemand properly designed 
system utilities such as 
editors andcompileis, there is 
no need for multiple copies 
of iheseroutines to be resident 
in memory. Assemblers, 
edilors,compilers, and oiher 
frequently used programs are 
each madeicentrant. Ihe 
progjam loader can examine 
the task I ist whena new 
program is loaded and make 
use of a copy of the pro- 
gramlhat already tesides in 
memory. This approach can 



piovide asignificant memory 
savings on a large multiuser 
system. 

Writing Reentrant Code 

Most programming is dooe in 
high level languages. 
Usuallythe language takes 
care of providing reentrant 
code. All Ccompileis and 
most Pascal compilers can 
provide rcentrantcode. These 
compilers create reentrant 
code so long as thcreare no 
sialic variables associated 
with the routines. Allvari- 
ables should be dynamic. 
Dynamic variables are stored 
onthe stack which is passed 
from the calling program. 
Static variables must be stored 
locally and associated 
uniquely withlhe local 
routine. Therefoie, static 
variables will not besaved 
automatically when the task 
dispatcher passes control from 
one task to another, and there 
is no guarantee that asacond 
task can enter the routine 
without disturbing thestatus 
of the first. 

Siatic variables can be used if 
they are not used fotexecu- 
lion of the routine. For 
example, a routine mightre- 
quire initialization ihe first 
time it is entered. Here, 
astatic variable could be used 
as a Hag to indicate that 
(reinitialization has been 
completed. This variable is 
not apart of the computation 
executed by the routine 
whenever theit is called. 
Generally, static variables 
must be used withextreme 
care with reentrant code. 

Ihe discussion heie is aimed 
at assembly language 
programmingoniy. Most of 
the time, high level languages 
will sufficefor the eveiy day 
programming. The times that 
the high levellanguages fail 



aie those when use of and 
access to machinelevel 
operations are necessary. For 
example, I/O drivers,screen 
access piograms, graphic 
dtiveis, and global func- 
bonssuch as floatingpoint 
operations would probably be 
writtenin assembly language. 
Both reentrancy and position- 
independence are required for 
these types of routines. 

Ihe MC68000 family pails 
have architectural structures 
andinstructions that make the 
programming of leenlrant 
codeparticularly easy. The 
indirect addressing modes 
allowsaddiessing of bytes, 
words or long words — 8 bit, 
16 bit, or32 bit quantities — 
that are offset from a frame 
pointer orfrom the stack 
pointer. 

A most convenient instruc- 
tion is the LINK instruction. 
Thefarmat of the link 
instruction is 

LINK An,#displacement 

In response to the link 
instruction, the MC68000 
pushes thecontent of the 
designated address register 
onto ihe stack.Then the new 
value in the stack pointer 
after the pushoperation is 
placed into ihe designated 
address tegister .Finally, Ihe 
value displacement is added 
to the stackpointer. In the 
MC68000 family, the stack 
pointer is alwaysthe address 
register A7. After execution 
of the LINKoperaiion, there 
is a designated amount of 
memory on the usoslack that 
can be used as stotage by the 
currently executingroutine. 
Boundaries of the storage are 
marked by theconterus of the 
stack pointer and the contents 
of An. 



46 



February '89 



68 Micro Journal 



The diagrams in Figure 1 
shows the impact of ihe 
UNKinstniction. In this 
case, the designated address 
registeris A6, and the 
displacement is -14, The 
memory entries shownin 
Figure 1 are 16 bit words. 
Assume that the program has 



UNLK An 

This instruction causes the 
contents of An to be placed 
inihe stack pointer, and the 
top of the stack ispullcd 
in tothe register Art After 
this opeiation is completed. 



Before After 

low address 

\\\\ t A7 

\ A6 . (A6> 

A7 . return . - return . 

high address 



allregisters will be restored 
and any dynamic memory 
used bythis touiine will be 
unaltered in the event thai 
another laskmight use this 
same zouline. 

The register An used with ihe 
LINK instruction is called 
theframe pointer. Mnemonic 
names may be assigned to the 
memorylocations on the stack 
by any of several means. 
Probably iheeasiest technique 
is to use the OFFSET 
directive in anassembly 
language program. An 



Here the table is terminated 
by entiy into a SECT ION 
Ipor tion of the code. When 
this table is assembled, the 
valuefor ABLE will be 
because the offset is 0. 
BAKER andCHARUE will 
be 4 and 8 respectively. 
DOG will be assigned avalue 
of 10. Reference to these 
mnemonics relative to 
thestack pointer will auto- 
matically access the correct 
memory location on the stack. 
An example that accesses 
iheselocabons is as follows: 



Figure 1. Effect of 
execution of the instinct ion 
LINK A6,#-14 



just entered a subroutine. 
Therefore, the stack pointer 
ispoinring at a location in 
memory thai contains the 
loug wordaddicss of the next 
instruction in Ihe calling 
program. Thislocation is 
designated by return in the 
figuie. After theLINK 
instruction, the content of the 
register A6 has beenpushed 
onto the stack, and ihe new 
value of the stack pointertias 
been placed in the register 
A6. Filially, thedisplacement 
44 has been added lo the 
content of A7 so thanhe final 
memory configuration is as 
shown in the figiae. 

At the end of the subroutine 
execution, the original 
siaiusis restored by execution 
of the instruction 



thememoiy status is restored 
to precisely that shown in 
iheBefore portion of Figure 
1. 

After execution of the LINK 
instruction shown in Figure 
1 .there are 14 bytes of 
memory allocated to the 
routine. Thesel4 bytes will 
remain attached to ihe routine 
until an UNLKinstmction is 
executed prior to return to the 
callingprogram. Afler 
execution of the UNLK, the 
memory assigned tothe 
routine is gone. Thus, ihe 
name dynamic. The amount 
ofsioiage assigned to each 
routine is just the amount 
needed toexecute the routine, 
and the storage exists only 
while theroutine is being 
executed. Also, it should be 
noted that in the event that ihe 
routine is interrupted by the 
taskdispatcher, all registers 
will be saved prior to the 
startirtgup of artfther task. 
Therefore, when this routine 
isrestartttl by the task 
dispatcher at a later time , 



SUB LINK A6,#-14 Link the stack apace 
MOVE.L D0,ABL£(A7> Place DO into AHIZ 
MC7VE.W DO , CHARLIE (A7> Place the lower word of DO 
in CHARLIE 

Subtract DO contents 
from those of Dl 
And save the result in DOG 



SUB.L DO r Dl 



MC7VE.L Dl,DOG<A7) 



etc. 



UN1H A6 
RTS 



Unlink the stack apace 



OFFSET directive allowsde- 
finition of a table of offsets 
created by Define Storagcdi- 
rectives. Symbols thus 
defined are kept internally by 
theassembler. The offset 
table may contain no executa- 
bleinstructions. The offset 
table is terminated by a 
SECT ION orORG directive. 

As an example, suppose thai 
our routine needs three long 
wordvariables, ABLE, 
BAKER, and DOG, and an 
integer CHARLIE. Thefol- 
lowing OFFSEr table could 
be used to create thesevari- 
ables: 

offset o 

AB1£ DS.L 1 

BAKER DS.L 1 

CHARLIE DS.W 1 

DOG DSL 1 

SECTION 1 



Here all memoiy operations 
are relative to the stack 
pointer.Figure 2 shows how 
the memoiy is organized on 
thestack. 

Sometimes the slack is used 
for other operations during 
theexecutkm of the routine. 
In such a case, the stack 
pointennight be altered 
during the execution of the 
program, and theiefeiences 
into the offset table would be 
shifted. Here allof the 
memoiy values would be lost 
unless extreme care wereex- 
ecutad in creating the code. 
An alternative means 
existsthat allows memoiy 
references relative to the 
FRAME POTNTERwhich 
should lemain unaltered 
during execution of therout- 
ine. Note the following 
minor change in the OFF- 
SETtable. 



68 Micro Journal 



February 80 



47 



OFFSET -14 

ABLE DS.L 

BAKER DS.L 

CHARLTE DS.W 

OOG DS.L 

SECTION J 



Lower Addreaa 



Inis symbol table staits with 
an ofFset oM4 rather than 
Oas was used earlier. Here. 
ABLE will be assigned a 
value of- 14, BAKER a value 
oM0,CHAKL!EwiIlbc-6 
and DOG willequal -4. 
Recall that A6 is pointing to 
the top of the framepointer. 
Iherefore, offsets generated 
by this table relativeto A6 
will chose memory locations 
for the various labelswithin 
the stack area attached by the 
link command. Ihelisting 
below performs the same 
functions as the examplepro- 
gram above. 



ABLE 

BAKER 

CHARLIE 

DOG 

FRAME POINT 

RETURN 



A7 



A6 



SUB 



POSITION 
INDEPENDENCE 

Position independent code 
can be placed anywhere in 
memoryand will work with 
no difficulties. Ihereare 
severaiitasons to want 
position independent code. 
Most codeintended to be 
placed in ROM should be 
position independent 
Therefore, the ROM begin- 
UNK AM-14 ringaddoas need not be kept 

MOVE.L D0.ABLE(A6) al as P cc,,ic memory location. 
MOVE.W D0.CHARUE<A6) AnOther ' and P ro ^bly mows 
SUB D0.D1 compelling reasoo, has to do 



Figaro 2 
^^^ O^IB ia » two byte or Z^ ,. 



SUB D0.D1 
MOVE.L Dl.OOO(A6) 

Etc. 



UNLK 
RTS 



A6 



Ihe difference in this case is 
that all labels are oflsetfrom 
the frame pointer A6 rather 
than the stack pointer A7.In 
most cases, either appweh 
works equally weU and 
tffcehoice of which reference 
technique depends only on 
theprogrammers whim. 



with memory assignment 
onmultitasking systems 
where there is no memory 
manager. If asystem has no 
memory manager, there are 
two frequently usedap- 
Pt>acr*d to the assigning of 
memory space to a 
progiam.The first requires 
lhat the programmer link the 
severalprograms lo be loaded 
at unique address^ so that 
none of theprograms can 
overlap. This appro** really 
makes theprogrammer into a 
makeshift memory manager 
When it isiequired to load 
lhis code, the loader must not 
allow theroemory space of 
this fvogram to overlap the 
memory space ofaiiy ocher 
running program. A some- 
what better *PDm*hrequires 
that all code be position inde- 
pendent. When aposition 
independent module is 
loaded, the loader must 



merely/ind free memory 
space large enough to contain 
the programand load it there. 
Once the fvogram is started, 
it willoperate exactly the 
same as if it had been 
assigned to adesignated 
memory space. Since the 
system is multitasking.ihere 
will be several modules 
loaded into the memory space 
ata time, and the operating 
system has the responsibility 
ofmaking certain that there is 
no memory interference 
betweenthe modules. 
Otherwise this job is faced at 
link time by aprogramer who 
might not even know what 
modules will be loaefcdinto 
the computer at any given 
time. 



Writing Position 
Independent Code 

A provision in many assem- 
blers allows giouping blocks 
of codeor data into sections. 
Motorola assemblers for the 
MC6g000fainilyofpans 
provide for sixteen sections 
for each module.Section 
wganUations fl Now the 
fxvgrwxner to specify 
5peciaJcharBcc0isjcs that 
need to be grouped when the 
program kJ inked into a 
forking module. For 
example, dynamic ramstor- 

age could be placed on one 
section and high speed 



strain in another. Utility 
Programs su*ed in ROM 
could be in ascction, and 
applications programs could 
be linked into yetanother 
section. 

When a program is as- 
sembled, a symbol table is 
created thatcontains the 
relative address of every label 
used in theprogiam. Ihese 
addresses are relative to 
Section stans withthe 
MC68000 family assemblers. 
If there are several sec- 
tionswithin a given program, 
each section start address is 
set tozero. Iherefoie, the 
symbol table must contain 
both therelative section 
*Mras of each label as well 
as the sectionin which it is 
contained. Code generated 
by an assembler isof the 
relocatable object format. 

A/ *Hhcr Parameter kept by 
the assembler is the current- 
location counter, lhis value 
can be accessed by th^> ro . 
grammerby use of an 
asterisk in the operand field. 
Forexample, a command to 
load the cunent location 
would be 

LEA *,A0 



48 



Pebruafy S9 



IWs instruction will cause 
the current value of the 
locatioocoumcr to be loaded 
into the address register AO, 

One or more relocatable 
object modules are combined 
into asingle loadable object 
module by the linker. Ihe 

Itnkerpullsallofthelike 
sections together and assigns 
toem lomcrnory locations. 
After linking, the program 
insmiciicMdfr^ss^ c^jj^ 
called location counter 
values, will becalled program 
counter values. When a 
progiam is loaded intomem- 
ory and the program counter 

68 Micro Jotim* 



is given the value of thefirst 
instiuction in the program, 
the program begins toex- 
ecute. The insiuction 
pointed to by the program 
counteris fetched into the 
machine to be executed, and 
the programcounter value for 
the next instruction is 
calculated befoiecompletion 
of the first instiuction. This 
sequence isrepeated progres- 
sively until die program is 
completed. 

It is not necessary to place 
the various sections of 
aprogram in contiguous 
memory. In fact, if the 
sections areused as outlined 
above to designate special 
memory characteristics, it 
would be impractical to 
always expect the daiafrom 
any program to occupy 
contiguous menu* y. There- 
fore, thelocation of data 
stoiage in a computer may 
not ever bepoisiton independ- 
ent. 

The above discussion might 
lead us to believe that 
iheprogram, after linking, 
must be placed at some 
designatedlocation in 
memory and remain there. 
Seemingly, dataaddresses 
must be fixed in some way so 
that they can befound when 
different portions of the 
executing progiamiequire 
them. There is a way around 
the problem. 

MC68000instructions can use 
the difference of the data 
address andthe program 
counter to locate a data 
address. Such anaddressing 
mode is called Program 
Counter Relative, PCR. Ifall 
data accesses and branches 
— including branches 
tosubroutines — are PCR, 
there is no need for abso- 
luteaddresses anywhere in the 
program. If no absolute 
addre&sesare needed, then the 



progi am can be executed 
anywhere inmemory, and it is 
indeed position independent. 

To create position independ- 
ent code, the programmer 
must makeall data accesses 
and changes in program flow, 
JMP, JSR, BRA.Bcc, and 
BSR program counter 
relative. Any bianch instiuc- 
tion is automatically PCR. 
The only concern with a 
change inpnogram flow is to 
make certain that the branch 
instructioncan reach the 
destination. This concern 
will be discussed atgreater 
length later. 

For data accesses, the PCR 
mode can be used. Function 
codesof the MC68000 pans 
contain hardware signals of a 
dataaccess or a program 
access. Any storage opera- 
tion that isPCR implies that 
the operation is both program 
and data auhe same time. A 
PCR operation causes access 
of the programcounter which 
will asseit Program Function 
Code line. Thefactthat 
anything is being stored in 
memory will cause theData 
Function Code line to be 
asamsd. These two linescan- 
not be asseited at the same 
time. Therefore, this type 
ofopeiation is not allowed in 
any of the MC68000 family 
ofpaits. Ihe addressing 
category that designates an 
effectiveaddress in which the 
data can be stored is called 
Data Alterable, Data Alter- 
able destination effective 
addressesfor a PCR opeiation 
are specifically not allowed. 
Suddenly,the problem 
becomes a little moie 
complicated. 



Most aiithmetic and logic 
instructions are of the foim 

OPCODE <ea,Dn 
or 

OPCODE Dn,<e* 



where <ea is the effective 
address, and Dn is a datareg- 
ister. The left most operand 
is the source operand, andthe 
right is the destination 
operand. Ihe effective 
addressadmits a total of 
twelve different addressing 
modes. As wehave already 
seen, not all instructions will 
pet mil all ofthe different 
addressing modes as either 
source ordestination oper- 
ands. If the assembler option 

OPT PCS 

is included at Ihe beginning 
of a section, all code assem- 
bledin that section will 
automatically be assembled 
as PCR typeoperations. 
Therefore, the code 

ADD ABLEJX) 
will be assembled as 

ADD ABLE(PC)JX) 
However, the code 

ADD D0,ABLE 

will be assembled exactly as 
written because the PCR 
modecannot be used for Data 
Alterable operands. Asa 
result, itis the responsibility 
of the programmer to replace 
this codewith a sequence like 



LEA 
ADD 



ABLE,A0 
D0,(A0) 



to achieve a position inde- 
pendent equivalent to the 
abovestatement Ihe Load 
Effective Address, LEA, 



admits all PCrelative opera- 
tions. Therefore, this 
sequence will providefor a 
Data Alterable operation that 
is PC relative. 

In the opeiand desciiption 

label(PC) 

the item label is called a 
displacement. The effec- 
tiveaddress is calculated as 
thesumofthecuirent 
ProgramCounter Value and 
the sign extended sixteen bit 
value label. All pans ofthe 
MC68000 family have a 16 
bit limitation tothe size of the 
displacement in this case, 
For the MC68000and the 
MC68010 paits, this limita- 
tion exists for the branchin- 
suuetions as well as the 
displacements. If it be- 
cocnesnecessary to extend 
operation beyond the plus or 
minus 32kbyte range dictated 
by this limitation, other 
approaches canbe used. 

Another PC relative address- 
ing operation is the indexed 
mode.This address mode is 
described as follows 

label(PC,In) 

where In is any register. In 
this case, the address iscalcu- 
lated as the sum of the 
cunent Piogram Counter 
value.the sign extended value 
in the register In and the 
signextended value ofthe 
eight bit label. Ihe displace- 
ment inthis case is only 8 bits 
which yields a plus or minus 
128byte tange. 

It is best to assume that the 
PCS option will generatesa- 
tisfactory position independ- 
ent code when writing 
assemblylanguage code. Ihe 
assembler cannot know of all 
violationsof the 32k byte 
reach of a displacement. This 



€8 Micro Journal 



February '89 



49 



knowledgebccomes evident 
at link time when link error 
messages willinform of any 
such violation. If such an 
error messageoccurs dining 
the linking operation, a 
different approach isneeded 
to create position independ- 
ent code for the bianchesor 
instructions involved. 

Position independent jumps 
can be created. Suppose we 
wish ajump operation that 
will move Ihe program 
control to one ofseveial 
entries in a table based on a 
calculated value.Further. 
suppose that the range to 
these entries exceed thestan- 
dard plus or minus 32000 
bytes that can be accessed by 
abranch opemion. Any jump 
operation will require 
thedestination addiess, 
Iherefbre, the code involved 
mustealculate the aldress of 
thedestination. Examine 
thefollowuig code sequence. 



Enter this code sequence with 
the number of the procedure 
wewish to execute stored in 
ENT_NUMB. The table 
above containsthe relative 
addresses of the several 
procedures that can becalled 
by this sequence. The first 
instruction puts thenumberof 
the procedure into the data 
register D3. Eachentiy in the 
I able is four bytes long. The 
left shiftoperaiion multiplies 
the pointer value in D3 by 4 
to point toihe correct location 
into the table. 

Any BSR instruction pushes 
the value of the return 
addrcssonto the stack and 
transfers control of the 
program to thesubroutine 
address. In this case, we 
have placed thesubroutine as 
the next instruction following 
ihe BSR call.After the BSR 
ins&uction is executed, ihe 
address of thelabel HERE 
will be on top of the stack. 
The MOVE instiuctionat 



HERE removes this addiess 
from ihe stack and places it 
in A3. Regardless of the 
location of this code se- 
quence inmemory, the 
acklress of HERE will be in 
A3 at this point. Adding the 
offset TABl£-HERE to the 
address will leave theaddress 
of TABLE in the address 
register A3. 

The add ADD.L (A3,D3),A3 
causes the value stored in the 
Nthtable entry to be added to 
the address of TABLE. The 
resultsof this calculation is 
the address of PROCN. The 
JSRinstruction then moves 
conirol to PROCN. 

This fixed code sequence can 
be moved anywheic in 
memory andit will execute 
conectly. Note that the table 
entries willbe calculated at 
link time if the various 
procedures are indifferent 
modules. Also, it is not even 
necessary for thetable and ihe 





MCVE.L 


EWT_NUMB,D3 




ASL.L 


D3,2 




BSR 


HERE 


HERE 


MCVE.L 


(A7>+,A3 




ADD.L 


|TABLE-HEflE,A3 




ADD.L 


(A3,D3),A3 


• 


JSR 


(A4) 


* 
TAHIZ 


DC.L 


PROC0-TABLE 




DC.L 


PROC1-TABLE 




DC.L 


PROC2-TAHLE 



Program nucttoer ia in D3 
Multiply pointer by 4 
Subroutine call puta 
addreaa of here in A3 
Get addreaa of TABLE 
Calculate the new PROCN 
Go to it 
Subroutine returna here 



The relative addreaaea 
of the aeveral proc- 
durea that can be 
called. Theae valuea 
are calculated by the 
linker. 



FOR THOSE WH 




68 MICRO 
JOURNAL 



TM 



60 



February *89 



68 Micro Journal 



Bit-Bucket 



® 



MOTOROLA #A*C. 

Zachsry Nelson 

Cunmniham Corr*7ainjc»0on. tnc 

(408)912.0400 



DeanModry 
Motoroi* 

(512)440-28*9 



BUlfi 

HcwlettPadnnJ Gxramny 

<408) 447.0806 



HEWLETT-PACKARD DELIVERS LOW-COST 68030 WORKSTATION 

MOJO Often Broad Rante of Perfofmance 

AUSTIN. Tex**. Dec. 5, 1 8 — Hewlett- Packard Company announced thai it will 
use the Motorola 68030 (030) j najujauna mm m a ne w tow -cob c ngu ieenjig worfamnoo 
The HP 9000 Model 340. thai also bavjoiB Motorola's 6*3*2 (WD math c«pn«*toOT, 
u priced m S5.495. 

rWfct* Packard has more dun 250.000 Mocsrota-hased tyianm iasaikd 
w is ldw i d c . £«Hirrthu)«ar, Hew k^Pwi^ added trad- rw 

based on the 03GYTO2 <rerftiiuam*i to ia 9000 WarksnooB Fssmty. the HP MakJ 360 aod 
KP Model 570 The Model 360 provides tip to 3 MIP5 (milaop uug u smom per mxcod) of 
pmzxska powtf end the Model 3*70 provide* up to * MIPS The oew HP Model 340 
ua i a eii ian s these products by ofTenna up to 4 MIPS of perform*/** priced at TJOJOTO to 
5 J S/M) less lhan the 360 and 3m 

Momsola's 68000 mkn^vmosv Uk cumanJy has four rormtsTi — ibe 68000, 
68010. 68020 ftnd6803€L The dr^eipprjmmt of rhe 68040 rjonnnue* ibe evciuoon of ibe 
processor family, tn total. 19 vmllkm chip* from ibe 68000 family have been sold at 
tppttctafts including tupuuxiaMieri. high-end wtmiiRs. business cdv^*cj\ and 
emboidnJ control devices. New fenerations of the 68000 arc fully awrspanNc with earlier 
SaUVbascd products; software wntlen for one chip runs with no modification on tbe 
otheo. and hardware upgrades are very simple 

HcwIea.Packifd is an Inlemarwrva) manufacturer of rrcaui/envnt and computation 
products and systems rcsofntoed for quality and support The company's products and 
tervkei are used in industry, bus) nesa, enpneennf, sciense. medicine and education in 
more than 70 countries. Founded ut 1939. (he company cekbnues its 50th anniversary m 
1989. Jt has 87.000 employees and had revenue of WJ billion m its 1988 fiscal year 

Motorola's S2.2 billion Semiamd actor Products Serum (Phoenix, Artr). which 
include* ibe M myum uT Pmlucm Group (Ausoa. Texas), u a part of MoxsoU Inc It 



H (he l*rjr*i and broaden supplier of % 
ponfouo of over 30.000 devices. 



I B^TpllIAL COMTACT 
Oen Mogore. motorola 
512/441-6022 

Or. Kan Phillip* 
602/952-3*37 



i in North Anxrva with a balaored 



MOTTWOt.4 WC. 




|OT7) t»j air 



a chip orr THS Vt« BLOCK 

MSSA, Ariz., Oec. 2 — In the world of ooelconductor 
eenufscturlng. Motorola's now MOS 6 high dsnslty CMOS wsfsr 
fabrication fsoiiity at Mssa, Arli. 1* th* Industry** l*t*«t 
crown )*w*l. on* who** product* will h*Lp u«h*r in « n*w 
•r*. 




By: All of us 

'Cmtri&uu piking - *E*ptct Sfytfting \ DMW *86 



■"Thi* world cla** facility 1* Motorola** first U.S. 
aanufacturing *it* to u** *om* of th* Toshiba proc*** 
technology for aanufacturing th* l*t**t architecture* on 
aix-lnch w*f*r*. * said Marc v*nd*nb*rg, MOS 6 operations 
sansgsr. 

V*nd*nbarg said th* ?B.000-aquere-foot. Class 10 
factory is dedicated to fabricating ons-asgablt dynaslc 
random accsss ssatorlaa (DRAMa) and othar meaory circuits, a* 
wsll ss ons of th* »«»i conduct or lnduetry'e hottaat 
product*. *ppllcatlon-epeclf ic lnt*gr*t*d circuit* (ASICs) . 

Ths rslstionship with Toshiba, a Motorola technology 
partner end currently th* world loader emong one-aagebit 
ORAM producer*, slso positions Motorola to uos MOS 6 for 
futurs doe** tic manufacture of four-megeblt ORAM*, vtiich are 
expected to became the dominant amaory chip by the early 
1990s. 

A one-megabit ORAM ia capable of atoring 1.048.576 bite 
of Information, the equivalent of 66 douhle-apaced typad 
psgss, on a alogla integrated circuit. The davicaa are uaad 
oxtonaively in virtually all famillee of computere and 
compute r-beeed eystsms, including computar-sidsd design, 
engineering, and manufacturing ; communlcstlons/ robotics; 
and consumsr products. 

ASICs, ths sscond product type to be fabricated et the 
new Meaa facility, are faat becoming th* semiconductor 
eguivelent to the custom it ad sutomobils. Omaignere aelect 
from a eet of atendard con figuret lone, then add their own 
faaturaa depending on specific needs* 

The reeult ia reduced deaign and production coat* end 
guicksr turnaround, with complation of seas types of eemi- 
cuetom circuits in ss Little ss two to thrss weeks. 

Analysts estimate that ASICs, ons of ths famtast* 
growing segments of the semiconductor bus Ins ss, socou/ited 
for approximatsly 20 psrcsnt of ths totol market for 
lntsgrsted circuits lest yeer. 

Motorola managsrs ssld ths sdvsnced procsssss snd quick 
cycls cspsbilitiss of MOS 6 srs idssl for mssting rspidly 
chsnging rsquirsmsnts of high performance cuetomer 
applications, especially in computere end communications. 



66 Mcro Journal 



February 89 



51 



Tha facility ia • k«y alwant in Motorola'* plan* for 
th« cowpany'a nav High oanaity CMOS (HDC) Sariaa, a line of 
ASIC product*, Capabla of procaaaing •ub~aicron HDC part* 
as thay avolva 1a tha futura, KOS 6 providaa an iamadiata 
capability to aanufactura tha lataat 1.0 aicron HDC gats 
array a. 

Motorola 1 * nav ASIC oircuita rapraaant • significant 
advanc*m*nt in microchip technology. Built with a tripla 
layer aatal (TRIM) atas procaaa, thay giva aaai-cuatoa chip 
daaignara afficiant routing arid povar diatribution on a 
channeleaa architaetura vith minimal dia aixaa. 

Tha raault, according to Motorola aanagera, ia a 75 
parcant gata utilization rata vith vaty high parformanca 
(aubnanoeacond loaded gataa) and unpracadantad input/ output 
flexibility and danaity. 

*NOS 6 will provide advanced Manufacturing technology 
adainietered by highly eXilled people to eupport euperior 
cuetoaer eervice. end product guality, both in aeaory 
producta and the rapidly expanding ASIC aarket," vandanbarg 
•aid. 



Ooopen 



CONTACTS 
James Strohecker 
Cunningham Communication, Inc. 
(408)982 0400 

Bob Anundson 

88open Consortium, Ltd. 

(503)682-5703 



WJopen Consortium Holds Member Meeting 
Completes Binary Compatibility Standard 

Two New 88000- based Systems Displayed Ai The Meetings 

W1LSONVIU.E, One — December 12. 1988 — The 88open Consortium. Ltd today 
announced the results of hi mem bets meeting held lisi week, where 128 representatives from 
more chin 50 companves rallied to suppon the Consortium's standards development and "Team 
Conaiuing*' ctmccpt At the meeting, two hardware vendor displayed yet lo beannoenced 
compiler systems based on Motorola's 88000 RISC o&cTopTorcssor. 

Dunng tKc two day meeting, held in San Diego. Calif, (he 8 8 open Binary Compaiibiliiy 
Standard (BCS) committee niet and approval ilic final BCS than allows 88000 RISC based 
application software to operate avuparer» u , y across numerous systems, similar to PC "shrink 
wrapped" software. 

More than 20 imc/nsoona! rcrjTscJHatives fiorxj European companies met separately at the 
meeting to review evencas standard* developotent. product announcements and die appointment 
of in 88opcfl European director. Many of the inicmaiionaJ representatives indicated Out their 
companies would announce 88000-bajcd hardware and software developments in early to mid 
1989 

The meeting provided new and existing Kflopen members with the opportunity to meet ond 
review progress of soft ware application, hardware and uandanls development The members 
discussed update* oo opaabng system based groups *uch a* ihc Open Software Foundation 
(OSF) and Unn International (formerly the Archer Group), upacming prod uci announcements 
and individual and coliective publicity efforts. 

Ouck Corky, manager of Motorola's 88000 Microprocessor Development, pi est need a 
technical and architecture update, including ihc genera) uncling schedule and the announcement 
of improved clock tcuds with upcoming versions of the 88000 architecture. 



"It was unpressivc lo see that in just six months we evolved fiom a group of 30 vendors 
who were itinerant lo lei each other know which company ihey represented, lo a coctesive 
representation of more thin 125 people who were working together lo dcvehJp standard* and 
bring aboui the success of the 88000 architecture." said Bob Anundson.caecuHvc director of the 
88open Consortium. "Wt believe thai this form of Team Computing is what other RISC 
vendors most ultimately turn to for true uaxru across the RISC architecture and hardware and 
software.*' 

7 he B iaary Compatibility Standard ia a corner**** for making the Team Computing 
environment possible, 8&open*s concept of Team Computing enables all application software 
ihn complies with me BCS (o run on any of the 88000-based hardware systems. User benelits 
include a highly competitive envi lonment wtih a vast array of cost-effective solution*. 

The BCS has been under development by a commiiwe of 88open mrxnlro since the 
introduction o f the Mctctota 88000 RISC architecture in Apnl and Is the tint RISC sttndanJ to 
be made •vailable in the industry. The &8open BCS is bawd on AT&T'i (Jn» Sysiem V He) 
3.0 and combines X/Opeo and IEEE ttandsrtls. Interested parties may obtain the BCS from 
88open. 

A number of new members including NCR were added to ihc 88open roster at ihe meeting 
It was announced that Kictuud Hmcr of NCR was appointed a seat on the 880pm board of 
directors, NCR has secretly been a Consortium member since die formal introduction of the 
8Bopcn in April 1988. 

The 88open Goasxvbom, Ltd. is a not-for-profit organization famed 10 develop and 
pmcnoie ihe success of Motorola's 88000 RISC aficjopracesaor architecture. The Consoniitnu 
based in Wilsonville. Ore., includes more than 51 worldwide members. 88open » pioneering a 
unique way of doing business built on the portability of 88000- based applications across a 
variety of hardware platforms including fault tolerant systems, computer server* and 
workstation. Information regarding the Consoroum can be obtained from the 8 8 open 
Consoraum. Ltd. ai 8560 SW Salish Lane , Suae 500. Wilsonville. OR 97070: telephone 1503) 
682-5703, 



SANYOrtCON FIRST 88OPEN MEMBER TO 
DISCLOSE 88000-BASED MULTIUSER SYS TOM 



WILSONVILLE. Ore — Otctmbc' 12. 1988 — TV K8open Consortium. Ltd loday 
announced thai Sanyo/Icon International (Orem Utah), an American subsidiary of the Sanyo 
Electnc Ca (Osaka. Japan), is the lira 88opcn member 10 introduce a Motorola 88000 RISC 
ptivc&strf-based system. The sysiem, called Icon 8000. is a multiuser business system which 
fuppotis u p to 2 56 users, delivers 1 5 MIPS (aulboos instructions per iretmd) of performance 
and is ihe first 1 a number of products horn a variety of vendors to comply wtth the 88000 
Binary CoropadbiUty Standard (BCS). The BCS allows 88000 RISC-based applicauon 
software to oansparently operate across numerous cysieov*. aimilar to PC "shrink wrapped" 
software. 

Sanyo/Icon Is one of more than 45 member compares of the 8Kopcrt The cc*n>any 
joinad the 8 80 pen Consortium in June of 1988. The 88000 architecture, which includes many 
features of die so-called "luperminioanputer" market. t$ currently being evaluated by moor 
than 200 manufacturers worldwide, 

' The Sanyo/Icon aancav«siR3H demonstrates the Arst tiopierocntarioA under a new 
computing environ men 1 we call Team Cbmpubng,"' said Bob Anundson. executive director 
of the 88open Consottium. Team Conaiuting is where all application software will iun on 
any of the 88000-bascd hardware systems. The benefits 10 ihe user are a highly competitive 
envuxKvrxM with a vast array of cost- effective solulions. ,, 

The BCS is a cumersjone for making the Team Conaiutng envirofuTzni possible. That 
standard has been under dcvcfopmeni by a Kznmitirc of 88open members since the 
introduction of the 88000 chip set in April* and was the first 10 be made available in the 
industry. The 8Bopen BCS Is based on AT&T's UNIX System V Rcl yo and combines 
X/Opcn and IEEE standards, Interested parties may obtain the BCS from 88open 

1 he 88open Consorrjum. Ltd, isa not for-profit organization formed to develop and 
promote the s ucccsa of Motorola's 88000 RISC mcroprorcsxY architecture. The 
Consortium, based in WUsooville, Ore., includes more inan 45 worldwide members. 88open 
is pioneering a unique way of doing business built on the pot lability 68000-bsjcd applications 
across a vat tety of hardware platforms including fault loleratant nystems> computers servers 
and workstaano. Information ttgardiog the Consortium can be obtained from the 88opcn 
Consortium. Ltd. at 8560 SW Salish Lane. Suite 500. Wilsonville. OR 97070: telephone 
(503) 6825703. 



52 



February 89 



68 Micro Journal 



EKF-ELEKTRONIK-MESSTECHNIK GMBH 

$yv»mf\*u9 f«r Uatxx»r>pvter ^a irtfuarte-eajtefroyi* 



EKF-ELEKTRONIK-MESSTECHNIK GMBH 

SysBrmam tur WowmuMw und bebsttrie-Eie^Vonik 






poo Willi*** 

61 Micro Journal 

Computer Publiahlng Center 

5900 Caaaandra Smith Road 



» la, tM7O0*evwr> i 
A (0*341)12430 

talks azee?i «m o 

T«fc*t*C<0»Bt|iy>«7 



gtU-ntt f*l^b? n tor YrHf**m/**ll} ' «M9-H 

Two ladapeadeat aectlaaa of i-w«y data coaaualcatloa pata aelectora (or 
••rial Interfacee according It* M23J Oca ceatelAaO in int 445J0-4X 
avltchbox froa EXP, thua allowing coupling of aavaral paripharai davlcaa 
to aura than ona coaiputar ayataa* Intagrated no 11- nodosa ara providad to 
aJapllfy changing of DTK to DCS and vice varaa, ao that conoactiona froa 
cans?ut*r Co coaputar or tarnlnal to terminal require no aora ap*cial 
c*blia<? hardware. 

Keuied in a itnl ahtat box for alactrical and aegnatlcal acraanln?* 
10 oa-24 faaala connactora ara routed on tha pln'a fx-Data, JU-Deta, CTS 
und 0T* (Ko. 1, 2, 5, i, 1, 20). Praia (Pin 1) ia available via 4HA 
grov tiding aockac. 



Don Pilllut* 

64 Micro Journal 

Coaputar Publlahiog Center 

5900 Caaaaodra Balth toad 



• la. D 4700 H 
Tatofai (0238th 24*>v3 
7*** 624431 aMd 
7**Ui<023Blt IM67 



m #i*rtiT*9*rt f ■iiati «9» tfrtfti t? w*9 rev ■ yi. «■«#-<■>> 19 

*ith diaedaiona of only 34x7 6*mj tha IXP adapterboard VKS 68061- ADP50 
allowa upgrading of any aviating 64020 nlcrocoroputar ay at a* to tha aora 
advancad 68030 chip. Tha only thing tha uaer haa to do ia to reaova tha 
60020 CPU and to inaart tha adapter; carrying tha 60030 nicroprocaaaor. 

T«e pc-boerd ia ■ I- layer coaetructioa aith povar and grovodpiaaa la 
coabloetlaa aith additional decoupling capacltora for effectiva oolaa 
raductlon to loaura abaolotaly rallabla operation. Kxlatlng 68020 
aoftware ruaa oo tha 66030 alcroproceeeor without aoy changaa, anch that 
upgradad coaputara can ba bootad fron harddlak or dlafcette in tha aaae 
Adnaor a a before. Tha VKK 68061-AOP30 adapt a r la aval labia fro* £RP 
atoeh at a alagla quantity prlca of DM 220.- (Europe) or US$ 134.- 
<USA). 



r£2rssir::r .Blef — ■^■t«snna 



ac 



]SE 



SO West Hoover Ave. 
Mesa, Arizona €5210 
Tal. (602) 962-SSS9 
Fax. (602) 962-5750 



GKSPAC XaaOKS 1969 CATALOG 

HK&K, az, sacaabar 9, 1988- -Gx3paC, Xnc baa ralaaaad 
ita niv 1989 product catalog of board laval product!, 
aoftware »od eyateae Tha 116 paga, all-color docuoant 
la the largaat tba company baa avar producad md liata 
ovac SOD up-to-dete product rafarancaa. 

Tba G1SPAC catalog ia tba largaat in tba board laval 
induetry and includee tba aoet divaraifiad variaty of 
hardware and aoftwara coaponanti, Tba GkSpAC catalog 
offara aa aucb, if not aora cboica, tban tba typical 
bua buyar ' a guidaa of otbar arcbitacturaa . Tba GESPAC 
catalog ia eeat fraa of cbarga to Qualified anginaara 

Tba catalog ia dividad into aavaral atjos product 
catagoriaa to balp guida tba anginaar'a oalaction. Tba 
principal catagoriaa ara r Intal and Motorola baaad 
Procniors. atatic and dynaalc Maaoriaa; aerial, 
parallel and analog Zoterfacee; Controllara for dieka, 
grepblco, data conwunicat ion, natvorking and aotor 

control; vo«ioue accaaaoriaa aucb aa card eagea, 

cablaa and backplanaa. 



Reader Contact: 
Editorial Contact: 



Don Biilos 

Cosmo PebouctslOts 



A new product category liata a complete of faring of 
linaar acan caaaraa and controllara 

Tba catalog* a aoftwara aaction baa grown to include a 
library of aoftwara drivara for aoat boarda offarad by 
GISPAC, aoftwara development utilitiaa, in addition to 
tba uaual reel-time oparating ayataaa and bigb laval 
languagaa . 

An iaportant aaction of tba catalog ia dadicatad to 
ayataaa. Tbia aaction liata a larga faaily of pre- 
oeoeabled and raady-to-uaa development ayataaa and OEM 
coaputara baaad on tha boarda and aoftwara davalopad 
by tba coapiny. Tbaaa ayataaa ara aitbar baaad on tba 
OWlX-like OS- 9 raal-tiaa oparating ayataa or on tba 
popular K9-O09 oparating ayataa. 

Tba catalog alao liata Application Spacific Intagratad 

Circuita davalopad by GISPAC for interfacing to tba G- 

64 bua. Tbaaa ASICa ara Bade available to all tbird 
party board aaouf actvrara. 



66 Micro Journal 



Februa/y ^89 



53 




Product News 



i Him ii 

S*OftSl*Xt*rtfW FOHtTUSA Wiyw Fachrr|*uB> STO^MO 

2959 S UAncNene. Bfet 0*b»4 CA 96008 FOflCJ Gmbtl tat* Nfcoch (0891 600 <HG 

Mv*ny Snor* <«Qt) 37*74*1 

First 68030-based VMEbus Message Passing CPU 

For Distributed Real-Time 

Multiprocessing at the High End 

CPU-SO Seine ted For Ne*v Simulator Program. Displacing 
MlnJcomputere e* Mainframe* 

CAMPBELL, CA , December t$. 1988 — The highest known perfcemance 68(B[>base<i 
VMEbus single boatd •ocn ret began shipping this (norrth tTJRCZ CTiKPUTOcS believes the 
CPU 30 sets new marks m functtonaltry and processing throughput thai wtl expend tlte use 
o( VMEbus product* bito new ma/krb 7>ic CPU-30 is Ihe lim tour meungr passing 
stogie-board ownpulcr mailable for VMEbus eppttcafkXU lb Introduction begins an era of 
off the siielf soJuOoru for appucarjaru previous ly served by more expensive miruevmputen 
and mainframes 

Ihe CPU 30 has ebeady been selected for us* In a motor Navy simulator prolan (tec 
separate release) thai (treses these features 

The CPU-30 enable* the design of very large teak hkgr> peWomxanee systems in which 
the processing power b dbtrtbuied amung user* rather than concentrated In a arrxnuWd 
compute*," wwJ Many Webberg, FORCE CDWrVTBB VWe President & Genera) Manager 
*No other VMEbus solution offers the message exchange architecture netdtd for realtime 
distributed muktprucesstog 7>ie result b much higher performance at lower cost." he added 

Litany of Feature* Moke* CPU-30 More like Minicomputer Ttsan VME CPU 

Ihe CPU 30 exceeds die funnfonaKty of any known VMEbus board to achieve lite status of 
a true ryjnrrn~on-a<boa/d lb main features include 

• 60030 mui^iia— ii, 20 or 2fMXs opsra&on 

• 68882 rkerfer^ point adpTOsasaoj, 20 or 2SMNj 

• High pjrfc^mant* 32bu DMA cowdodjt - Tugft epeed data mWen tocaDy and khm 
I^V>Sh& 32 byte eitemei FtPO for bum DMA 

• VME7PLU5~ «e*rbc*vy imptameraed in fORCX GATI AWtAV 2 {FGA 002), a 22,000- 
pate ASJC (hat provides ma^t owing, mattsn rnxemflj* and <j co> nnrf< ww 
VMEbui inlerf ace 

a A Mbyte* system memory: shared dynem* RAM wtm byw panv a a r«**« e ? from ihc 

VMEbus vte FGA 002 
a Message broadens to up to 20 CPU* simulsnnewnk; 
a SCSI Jrtetfate us»ng onboard DMA controta 
a Floppy dfefc mivrfoc* (SA460 axnp*t*»*) 
a Fowl mulBDrolorol %rrvji ports. ] ehannei to KS232 and 2 are RS2J2/TG4Z2TC4aS scm- 



a 8-ott perantl e**ffat# wilh handshake 

a Up to 4 Mbytes of EPROM w>lh aupporl tor 28 and 32 (Mn eewa. 32 bit data patn 

a Syflem FPROM for boa) boot and «nt*rt inUakMfrn of th* K) miHac^ and FGAOQ2 

a RaaVbrre c>*XtaV>«(iflf w«n battery baeVwp 

a 32 Hbyie* of fool n«h 'spwd SHAM w«h baiwiv back up 

a Opoone) 10 HbVkavmd CU«n«t coMrolrr 

a 2 24-bkt and 1 8-Wl omen 

a Fuil 32 -bit VMEbui ma*#xMeve irearface. avfito-bvsl arbiter. SY5CLK dtTves. ireerrupl 

runfier, supporl for ACTAJl ft SVSFAJL 
a VHETW>M~. FDRd CDNFVT05" Ob/afard reaf-tUae qprrattnQ fyaxnn bemal 

Multtproctaaliii Capabtllty ft VM£ F)mctioita are Secoctd to None 
The \rtnvn ie\*«r of the CPU^SOi architecture b KiAOD, a 28] pin ASIC diet 
enables rnufcp/rsxaiif^ via moaage passing and mailbox interrupt* JUA-OXZ abo 
provide al the gfue fof»c needed by the host pjtwiw to drive the VMEbus and 
perform die trexusby's most CDrTfxihenslw set of nuvter, stave anil axrtrol funcoons 
These foafiina are eoaecoveJy labeled VME/PUJS Onboard performance b boosted 
because die ASIC rajnimita> paie delay* 

As a mufetoroarittns engbta, die CPU-30 bnparmenb meungr paMing modeled on 
miftia*nptfte* and maJnhame Ideals, but uith VMDhs cnmpMUjilry M^vngr passing 
pxTTTxib any prateaior to broadcast, ol any rime, stotus, d^a. Inierrupt or other mea 
sago to a select but potenoafly forge set of reeeivert Because mesaage passing 
enables real time cyitem oparaoon, A hadipiane pupulaled with sevvraJ VMLfUUS 
CPCTs can handle a vast army of fundfceu wtthoul conlenbon or system crashes 

The CPU.30 employs an cVbH «*4de, cVbyte deep FIFO mouage buffet and an 8>bii 
wjde high prtoriry message reader The byle-wlde corJfotiraaan enables a scheme of 
2S6 pooibfo messages Any VMZ master can deposit a messag* | n the buffer or 
wgkrar. Up to 20 vtar>pa ff < u ufty e el btxarda can dmut*ran*asy receive a meMaga. 
Mesagr racejpl sttmuaeao qukk aenon, tyofeatV on a predebstnlned basis For «■ 
•mpie, asTvtcetfl the beanupl caved by i ■■■ uy rau^l may bmxst an aforni. move 
a robot arm, pafaaaae a block of data or send eeiflthar menage to another CPU, etc 
The aeflcevtabcfkb baCaOy iceVeea p rogra<ton abfo.|t b easily tailored to epectftc ap- 
paastfora. And. it happens more e*0by md with graektr certainty of qszsb than any 
eehes archtbasura) approach that uaiipoo wtth Ihe QSE-1014 Indufbyctandard 
VaCbwaa 



Dti*ct«d Sofheare IrUeerupta via Mailboaaa 

T) M VMDxo provides 7 hardware tnterrupl levee, thb nsstricb the number of active 
eejorupt handkn to 7 at a dme. The CPUO0 «»9t>ents thb by providing 8 MataSon 
(nterrupb which an corrwanr driven. Wtth 8 per board, a fufly popusavd backpiane 
(21 CPUsI provklea 168 direcfed sorKware Wemipti for tasnettng the vvesrupt voasne 
opeoed In axrejlex sysrema. The use of MatKrfus aftow* r*4fi e«*cubon through 
quSca gprwalkm. of tntemrpts. and resub to Incredible berfcaaty 

Corporate News 



frjK^ USA Wayne FbcA« 14081 370-6300 
CAEUNK BDOtaaovt t»1) 622-4400 



BUM ■ Kahn P« 

29MS WiKhaarrfiMt C*mpM CA^OW 

Munv Shohil <40»i 3T974J4 



FORCE VME^PLUS^ Technology 
Chosen by CAE^LTSD for Navy Simulator 

Largest Contract In FORCE History Also Marks Penetration of 
VMEbus Into Minicomputer and Mainframe Territory 

ORLANDO. FL, November SO. 1988 — Link Tacbcal SJroufotoon T>vutoa (LTSO). 
Icicaard in Silver Spring. MD, (a subsidiary of CA£ Industries toaued In Toronto, Ontario T 
Canada) and FORCE COMPUTERS (Campbell, CAJ have announced award of a major 
rubamtrafl for computet ,ubsy*s<rmi for the U-S Navy's 14A12 Surfao* ASW 
(A»d£v0maA>* Worfarel Trainer 

CAELcik b the prime contractor for 1l»e production 14A12 Ilia iubaonoact *Ml\ FORCE 
vAl result in me luppfy of very high perforrruvKe VMEbus based computer* thai provide 
both •todem and tosrrurfor oaftoni bri an elaborate, eidremefy reoksbc re-creation of surface 
ASW strategies and tacbes 

Utider lemu of die ezsmrao. FORCE H tmplrmenfing me CAE Link design and dekvering 
hjry integrated, funtbonai subsyrtrms 

"Hie announxemeni was made on the eve of the annual l/TTSC Conference flnlener- 
vtce/JndusTry Training Servtor QvJererseL Nek5 here Al Its exhibit hunk, CAE-Link wfl 
demons9aie working student stations developed wrdi FORCE duriiig a devrlopmeni phase 
FORCE abo plans to derrvuxrate working models of the VMEbus computer design used to 
die program It wiD be die first public showing of these a&smely power* l J computen 

The I4A12 ASW Trainer b an aggnsu've No^y program to build an ASW training 
capftbikiy for the crews of surface ifript The program has an expected procurement Ue of 
several years, during which the FORCE tubonuract could be worth more than II mJQton 
Odrvery of die FORCE lus/dWe begins bi ea/ry 1989 

FORCE Qioeen For Product Performance. Deal an Synergy 

Bob Taggart, CAE-UnVs Vfoe President of MameDng, said 'die FORCE VMEbus based 
solution b a »harp departure from Ihe <njnicr*nputen chat usuaay get die rod for thh t)rp* 
of work VMEbus hardware wiO change die (ace of simulation because it's Inherent^ more 
powerful, easy to dulribtde where t**4*d, consumes mua>i less power and lias much tower 

sjfe cycle cod This epyra&h nsuks in modufor building blocks that can be used in 
other bainers We chose FORCE because their Vuesi VME lechnobgy often much 
tv^cr peifoTmanoe aiuf die abtlry to dstnbutt pwceaslng pAwer and muHiprrxming 
cspabibty in a avnplex stmufobon eivoMng many etuderrb and inttruciorf Their nfal- 
tttne hardVare b not only more powerful, it's abo less expensive * 

Taggtrl abo Indicated that FORCE was chwen over »everaJ compe*10rs "becau»e 
they joined our design team and provided the ongotog tupperi and Synergy thoi 
hetoed us 1o win die Nev>r aontrao " 

Many Weisbenj, FORCE Eaecuove Vkx PresJdent and General Manager, said "CAE 
Link's leadership In ilmulabon continues because they were ^ilang to by something 
new FORCE b using its latest design for the 14AI2 T?ieic boards emptoy the68O30 
m^optexonsos In an exallng new archttecturv coDcd VMEVLUS thai provides 
mainframe computer qualities such as meuagr passing and mollui inlmupes We 
diink t>ils aontrad marks an era In simulation and training eeocurcmertt using off the 
she** industry- standard sokittons " 

tXning the yearlong development phase of the 14A12, FORCE provided hardware 
and also prepared a realtime operebng system, pSOS 

Trainees Will Enhance Readiness 

The 14A12 Surfaee ASW Trainer has the potential to improve onmhoi reodinesi 
Ihe Navy's plan cad for aonxf/ucban of several 14A12 Trainers Webberg said the use 
of VME/PUJS distributed muftprtn^ng in the I4A12 dogp was being fooked fit 
efoiefy as a candidate for other sbnulafton and boinlng prcejramj across the miirtan/ 
aervica s and cnmmeniai airknes 

About Force Conaputara 

The leading mdeperubnri desSgnct and rrueiidacturer of VMEbus pnsfui*. Forts b 
entering its seventh yeas The company has cornpaned 23 consees/dve qua/ten of 
pro/fobs* c^xeratlon Force b rwad^iarijred to Campbell. Caafomla wtdi culaidukrrci 
to West Germany, France arid die United Kingdom Soles, service and product support 
are provided on a worldwide basb 

About CAE AJ »> 

Link Tactical Stouifotksi Orvtaion b the leading producer of toarimg simulators for 
Ihe US. Navel's turf ace. air and subsurfaae ASW applcsoons; surface team tacscs 
Vatotog and ground C 2 ryewns for the US Army 



54 



February '69 



68 Micro Journal 



M1CK&NICS 

Microcomputers - Hardware ind Sofi«*rt 
GUHX* S»kvS«r>ic*ir»d Support 



Dear Don, 

A preview of friend Denis 1 6Q2 for Cfeesaber shews a 
few typos, which readers may wish to correct, ihese 
are : 

P16, last para should read •Ul^at does S^ ABC' convey • 
Diagram 85, row 3* col 10 should read 120, not 126, 
P20, last para but one, should read *If they're equal, 
we get directed to BL0O:-4a . ..• 
P22, para 6, should read "»», friction as S <Jx ABC* .." 



333« LYNN AVENUE. 
ABBOTSFORD. 
BRITISH COLUMBIA. 
CANADA. V2SIE2 



I've also noticed a sneaky one in the August issue, 
{age 21r near top, should read »2 ml n2 ol. Ihe n2/nl 
canto somehow got reversedl 

I've been asked by a few readers about Manuals for 
RBASIC. The price for the manual alone is US$25 , 
including postage for North America <plus $5 
elsewhere), $22 of which will be applied against a 
future purchase of EBAS1C 



Don Williams, 

68 Micro Journal, 

5900 Cassandra anith Road, 

Hixson, TN 37343 



Sincerely, 

u 

R. Jones 
President 



C 



Cl&SSijicdS Al SubmUied No Cuinmeci 



D 



MUSTANG-020 16Mhz with 68881. OS9 Professional Package & C $2500. 

S+Systero with Cabinet. 20 Meg Hard Disk & 8" Disk Drive with DMAF3 Controller Board. 1X12 Terminal $2900, 
HARD DISK 10 Megabyte Drive - Seagate Model #412 $275. 
3-Dual 8 M drive enclosure with power supply. New in box. $125 each. 
5-Siemens 8" Disk Drive, $100 each. 

SWTPC S/09 with Motorola 128K RAM, 1-MPS2, 1 -Parallel Port, MP<09CFU Card- $490 complete. 

Tom (615) 842-4600 M-F 9AM to 5PM EST 

*** 

Motorola VME*10 with hi resolution monochrome monitor, hard disk, serial and parallel cards, Pascal ♦ assembler, linker and 
documentation. Almost new $4500. 

Two SSB-6809 systems with hard disks, miscellaneous software, Make Offer 

Cadwel) Laboratories 

909 N. Kellogg Street 

Kennewtck,WA 99336 

(509) 735-6431 



BICC VERO MICROSYSTEMS 
Flanders Road, Hedge End, 
Southampton, Hampshire. 
S03 3LG. ENGLAND 

Tel: 0703 266300 

BICC VERO MICROSYSTEMS provide a range of OS9/VME boards and 
Development Systems all with full OS9 drivers. A number of development tools 
such as Verolink are also available to simplify development of ROM based 
target systems. In addition 'C bindings are available for Graphics, GPIB, 
Analogue I/O and Parallel I/O. 



68 rtfero Journal 



February TO 



65 



B&R Industrial Automation Corp. is a manufacturer of programmable logic controllers 

industrial computers, visualization and process control systems. 

B&R offers the own hardware and software with easy communication to other systems. 

One of the latest developments is a 0S9 based minicomputer system with floppy con- 
troller on board, external harddisk (40 MB), optional memory extension board (RAM 
and EPROM) and a high resolution graphic controller. This so-called MAESTRO-System 
is available for 0S9 based software or can be used with B&R standard software and 
offers direct access to digital and analog inputs and outputs. 



For more information please contact: 



B&R Industrial Automation Corp. 

2165 West Park Court 

Stone Mountain, GEORGIA 30087 

Tel: 404 469 4617, Fax: 404 469 5460 



H.C. ANDERSEN COMPUTER A/S License: OS9/6809 Level 1 (DRAGON Computer) 



Th. Philipsensvej 21-23 

DK-2770 Kastrup, Denmark 
Telephone: 45 1 52 44 04 
Telex: 31484 tmrcph 



Development: OS9/68000 ATARI ST (Dr.Keil) 
OS9/68000 ATARI ST (Cumana) 
Drivers for t2->t5, cadscrn /term with 
special fonts, TOS GATEWAY (PD) 
SCULPTOR development 



OS-9 for VME: Single Boards to Complete Systems 



Mizar provides complete OS-9 solutions for the VMEbus. 
Mizar's VME CPUs offer (he functions and performance your ap- 
plication demands. Our single height (3U) VME processors are 
uniquely configurable computing engines, Through Mizar's unique 
MXbus™ expansion interface, standard and custom side mod- 
ules can be added to basic processors to create double-height 
(6U) boards tor specific applications, 3U CPU options include 
68010, 66020, and 63030 microprocessors, up to one MB of 
DRAM, serial I/O, real-time clock, and mailbox interrupt support. 
Standard MXbus side modules include additional DRAM. SRAM, 
and I/O. 

Mizar's standard double- height (6U) processors provide 
additional features such as a high-speed cache to enhance 
68030 performance, floating, point coprocessor support, up to 
four MB dual ported DRAM, VSB memory interface, Ethernet, 
and SCSI. 



Mizar also suppof ts OS-9 with completely configured OS 

9 development systems and OS-9 application server systems. 

For more information, call Mizar today 

800-635-0200 

MIZAR 

1419 Dunn Drive • CarrolHon, TX 75006 • 214-446-2664 



Pan Controls Limited specifically provides services In the field of Industrial automation. 0S9 Is 

used for the majority of the high level computing work, and a number of software packages have been 

developed for sale generally. 

STIMULUS 1s a general purpose rule-based expert system programming language designed for easier and 

more economic real-time processing for engineering control, simulation, monitoring, diagnosis, etc. 

Since STIMULUS produces C source, 1t may be linked with other modules 1n C or Assembly language, 

giving you the choice of C's I/O and Interrupt facilities. 

PROFILE Is a symbol profiling tool for C or Assembly language programs that Increases programmer 

efficiency. It provides a valuable and quick method of optimising large and small projects by 

making a table of the time spent running each of your functions In your programme during a working 

session. A quick look at this profile table shows you which functions are most used and help you to 

concentrate your programming efforts on optimising these functions. 

PAN UTILITIES Is a library of programs providing the major text-handling, file-handling and programmers 

utilities Hhleh the QS9 operating system lacks. 



February '89 



66 fttioro Journal 



PEP Modular Computers is one of the leading manufacturers of microcomputer boards an<J 
systems for the VMEbus and HOC (Intelligent I/O Channel) in compact single height 
format. /Founded in 1975 in Kaufbeuren, Germany, PEP is now established worldwith witf 
subsidiaries in USA, France an Sweden. /Today PEP offers a broad range of VME and HOC 
board level products, plus development systems, racks, backplanes, power supplies anc 
standard operating systems./ PEP's target market segments are industrial control ap- 
plications including machine control, process control, data acquisition and robotics 
This year PEP introduced for example VSCSI, a SCSI interface module for the VMEbus, 
VDAO, a combined A/0, D/A and digital I/O VME single height module, VMPM68KC-2, a 
powerful 68020 VMEbus CPU in military temperature range, VLAN, a cost-effective VME 
networking solution, VGPM a high performance graphics module based on the Hitachi 
ACRTC63484. The company also introduced VIOXROM, an universal VME software interface 
for a family of intelligent VME I/O modules./ Currently about 100 people are working 
for PEP worldwide. For further information please contact: Germany 08341/81001 



Scorpion Technologies Inc. features a line of Motorola 680X0 based co-processor 
add-in boards for IBM PC/XT/AT and compatibles providing the most economical 
development platform for 0S-9 engineers and programmers. This is the only known 
implementation of Professional 0S-9 available on the PC platform and" provides the 
unique feature of PC DOS concurrency. The Pro68 family is available with choice of 
68000, 68010 or 68020 processors and a minimum of 1MB of memory (expandable to 4MB) 
Two serial ports are available on the 68010 and 68020 versions with support for 
16 users via intelligent serial 1/0 cards. 



UNIVERSAL ETHERNET CONTROLLER BOARD 
MPVME1054 

* Intelligent Ethernet Slave Board running in any VME System 

A TRUE MICROCOMPUTER BOARD SOLUTION WITH ETHERNET CAPABILITY 
MPVME 1002 (16 Bit) MPVME1021 (32 Bit) 

* Three communication packages under OS-9/68K 
for all three Board available: 

- DECNET/VME 

- TCP/IP 

- OS9-NET 

Call for a complete documentation 

SYSTEMFORSCHUNG , KSnigstr. 33a, 5300 Bonn 1 , W-Germany Tel. 0228/223151 



XY2 Electronics, Inc , RR 12 f Box 322 Indianapolis, IN ^6236 

(317) 335-2123 Contact: Gary Bannister 
10-year old company manufacturers STD bus based industrial computer 

systems and boaiis/ Suport 0S-9/6309 Level I ani 0s-9/63000 

Professional Package. 
Board level products ^include CPU-9A 2*1Hz 63309, and CPU-63.C3 10 3H* 

63008. Both boards support STD bus for memory and 1/0 expansion. 
Board level products, board sets, and complete systems available. 
Memory, Floppy and hard &L*k controllers, analog 1/0, digital 1/0, 

and cages available. 

STD Bus systems offer a superior price/performance ration where 
medium leeel performance in an industrial environment is required. 



66 Mcro Journal February *9 



NEW! 

OmegaSoft Pascal for the 68020/68881 



P20K is a Pascal package thai will generate code for all of the 68000 
series processors, inckitf ng the $8881 coprocessor P20K will run on any 
68000 series computer running the OS- 9/68000 (Microware) or POOS 
(Eying Researen) operating systems with 512K or more free memory. 

The base package (P20K-B) includes the Compiler, Relocatable Macro 
AssembJer. Linking Loader, Screen Edtor, Pascal Snetf. Linkage Creator. 
Host Debugger. Configuration manager. Installation program, and Patch 
utility. A new reatixe in this compiler is the ability to either link in the parts 
Of the runtime n&«<)6<j by the profpam. or to use trap handlers for runtime 
access, to s* ive the runtime library between programs. Complete operating 
system interface is also included using pascaJ procedures and functions. 
Tne host debugger allows debugging at both the Pascal and assembly 
language levels of programs that run on the host operating system, Price 
for the base package is $575 



The runtime source code option (P2GK-R) is available for Si00 and includes 
source code for the operating system interface routines as well as pascal 
runtime. 

The UWity source option |P20K,S) i* avftiatte for If 75 and includes source 
code for the Screen Edtor. Pascal Shell, Hoet O&ogo*. Patch utility, and 
Configuration manager 

The Target debugger option (P20K.T) is $225 and includes object and 
source code This program allows Pascal level and assembly level 
debugging In a system without operating system, by using a serial link 
connected to the host computer 

Prices do not include shipping charges. Master-Card and Visa accepted. 
OmegaSoft is a registered trademark of Certified Software Corporation. 



Gespac SA. a Chernm des Au/k, CH-1228, 
Geneva/Plan- les-Ouaies, Switzerland 
TEL 022-713400. TlX 429969 

Elsoft AG* ZeJgweg 12. CH-5405 Baden-Ditt*). 
Switzerland. TEL 056-833377. TLX 828275 



RCS tfcrosystems Ltd. 141 U»bridge Road 
Hampton W«. udOesex. Enrjand 
TEL 01-9792204, TlX 6951470 

Byte Studo Bo# ken. ButenwaJt 14. f> 4280 Sorkaa 

West Germany 

TEL 02661-2147. TLX 813343 



Eltec Etektronik GmbH. Gafciao- Gafiiei- Sir a6e. 
6500 Mainz 42. Postfach 65. West Germany 
1EL 06131-50031. TLX 4W7273 

PEP ElektromW System e GmbH, Am Ktosterwald 4 
0-6950 Kaufbeuren. West Germany 
TEL 06341 8974. TLX 541233 



CERTIFIED 
SORTWARE 

CORPORATION 



P.O. BOX 70, RANDOLPH, VT 05060 USA 
TELEPHONE: (802) 728-4062 
FAX: (802) 728-4126 



KQfflfMMQSQSzMiMQMniUMzU®I^^ 



I I J- V /SK-IIOS VMS-IIOS 



TM 



Utilities 

For 68XXX and CoCo* OS-9- Systems 

Now READ - WRITE - DIR - DUMP - EXPLORE 
FLEX, SK-DOS & MS-DOS Disk 

These Utilities come with a rich set of options allowing the 
transfer of text type files from/to FLEX & MS-DOS disks. 

*CoCo systems require the D.P. Johnson SDISK utilities and OS-9 and two 
drives of which one must be a "host" floppy. 
CoCo Version: $69.95 68XXX Version $99.95 



P 



S.E. Media 




615 842-6809 



PO Box 849, HixsonJN 37343 
MC/Visa 



^jofgraMOjgigrsrafajBMgMg^^ 



53 



February 89 



SB Mcro Journal 



r 



SK*DOS768K 

Read the fine print to see what's in SK*DOS/68K: 



D Full DOS documentation plus on-line help D Multiple directories 
D User-installable device drivers O Install up to 8 different I/O 
devices □ Keyboard type-ahead D Print-screen □ Virtual (RAM) 
disk D Disk cache □ Up to 10 drives □ 5 K" or 3tt" floppy drives □ 
Hard drives to 64 megabytes each D I/O redirection to drives or I/O 
D Time/date stamping of files O File or disk write protect (even 
Hard disk) □ Batch files D Support for 68000, 68010. 68020 □ 
Monochrome or color video board support D Read and write MS- 
DOS disk files □ 6809 Emulator □ Powerful utilities such as copy-by- 
date, undelete, show differences between files, prompted delete, text 
file browse, and more - all included D Simple Basic included D Fast 
assembler included D Line editor included D User support via 
newsletter and BBS D Available software: C compiler, full Basic, 
screen editois, disassemblers, cross-assemblers, spelling checker, text 
formatter, music editor, hard disk manager, ROM-based debugger, 
modem communications programs, etc. More compilers coming. D 
(Some features may not be implemented in all hardware manufac- 
turers 1 implementations.) 

Individual copies or SK*DOS/68K are $140; less in 
quantity or when bundled with hardware. Send 

k^for our 6809 / 68K hardware and software 
catalog. Also available as part of our 
hardware/software educational course. 
Software Systems Corp, 
P. O. Box 209J 
MtKisco, NY 10549 
(914)241-0287 
BBS (914) 241-3307 Fax (914) 241-8607 





Apple 

Macintosh- 

B Users 



Save over a $KOOG.OO 

on PostScript 

Laser Printers! 

Faster - Finer Quality 

than the original Apple 

LaserWriter! 

New & Demos 

C ar t r idges-new-rebu ilts 

-colors- 



*in Chattanooga Calif 
615 842.4600 

(IMS-Authorize*) 



Data-Comp Division 

n "MIT . n rtoab it Q m*i imar 
n ' '^W ^t...HUIBE — • 



11tHM» Hnniiiraa 



SOFTWARE 



68000 C CROSS-COMPILER 

$100 . SKDOSMSOOSWtXJtENIX {OBJECT ONLY) 



Afccyo KftR C Uagva^r. \atrmta 68000 a 

■■Etude* 68010 oun-oito^lef: hbrwtes prwnAd Tor SKDO&. IM ttny be modified. 

CROSS-ASSEMBLERS WITH MACRO CAFAHILITIES 

EACH E30Fl.EX,OS9.V/SfFU-XMSDOS.UNtXJKf>OS,XENIX JfStOO AUJS100 

Svctfr •«>«. M02* «*»/! I, 480* r «»05. 6809. Z8. ZOO. 8W*. 8051. DOSS. 680101 )»•• 
Modular cnm-MBcn&trttnQ. w^ tadAmload uliuuc* Scuflzi tor •dd>u«\aJ 50 each. S 1 00 lor 
J. SWOtbrall 

CMODEM TELECOMMUNICATIONS PROGRAM 

J}9$-MSDOS i SKOOS.VNtXflKX0S9X6NiX.VNtrtJ : :X QBlECT-ONLT: EACH 150 



MauHlnvrti wiih i 



MODCM7. XON-XQfF, «c. 



SUPER SLEUTH DISASSEMBLERS 

EACH S9f*Fl£X SW-OS9 UOQ.VNlFtfX OBJhXT-ONVf: EACH $50 Fl£X,OS9.COCO 

lm»»CD«d} |<a0«£ mace on dtA %*h label*, mcajoc* utf . douffy oftua* 
Specify AWH>.1 J.l.^.V/nVU «nim iw Z*0VKM0J *e*i*on 
COCO DOS iv«*tob*c ta 6800.I.3.J.5 J.W50I tervan (not ZSV8ffl>,5) oofy 
4SOI0 wmm iJO#KtKX.OS«,LINIFLKX.MSOOS.tJMX,SKOOS.X j;NJX 

DEBUGGING SIMULATORS FOR POPULAR 8-BIT CPUS 

EACH VyFlEX Jftt-059 UO-UMFUSX 00$VC7^O^Lf: RACH tS^COCO FLEX, COCO 0&9 
Uito^tWy mnwmmt pvxmw*. nxhato* deoonnEiy foRnaOmt, bunr 
Specif tor 68WUMVJW5. 6502.6809 OS9 only, Z80 FLEX only 

ASSEMBLER CODE TRANSLATORS FOR 6502, 6800/1, 6809 

6302 to 6909 MFtJiX ttS-OSf SM UStFLEX 

tOQOit to W09 6\ U09 to po,.imL S50-FLEX X7S-OS9 Onfy ftO-UMFMX 

FULLSCREEN XBASIC PROGRAMS witfa rpnar e«i»irol 
AVAILABLE FOR FLEX, l/MFLEX. AND MSDOS 

Ouptcy Gmosfc*/ Doca/trJUf 
Maling Lm SjMefti 
Inventory W ith MKf* 
TthuU fUn Tpna^hMt 

DISK AND XBASIC UTILITY PROGRAM LIBRARY 
$i9-ri£X tiO-VNIFL K XfMSOOS 



S3Q wtwaooe. 


Si) »i«hou 


S100 ».'wunr. 


SS0 without 


SIQQw/wurce, 


1M without 


3100 Whnfm, 


ISO without 



v. Jii Ait «ut, mi uinxwry nwmiNi master oak*, do dot wru. <rsi|ta3vc mc « t)| 
BASIC ptofjsn.izef 6ASXT («f»».*- mm -FLEX ycrgxmtxJudc <wd ctj rq i *i*i- r cdy 



PROFESSIONAL SERVICES 

FOR THK COMrtTIKd COMMUNITY 



CUSTOMIZED PROGRAMMING 

We will cuaionbe joy of the («n/«i« deacrihod in ihi* a^vou^f^t or u> our hnxhwc for 
^iec4aUced nioiM uie or » covw new (moot the chvfc tor »ach cu4anii«alMm i^mdi 
upon (he amrteaHJUy of the madtrk^kw 

CONTRACT PROGRAMMING 

We wtlt cr«**e new fPt&iflu or otodiTy ezutitf jjrvjrmaj or* » cooo«rt back, a temu wo h*i»o 
px7T«k<j f ix tnrr nvoqyycw; (hewmpucrvoo w*khwt have perf orme d coniract Fogrw»n»ag 
bxlooo (nonpcfvls models of nm/nmn, tnciodinj IBM. B<rm«tic Umvjc. Hac^B. roon 
poHv «oooeb of oiPihitopuUTv tocladinj pec. IBM, DO. KP. aTAT. «nd mosi popuiu 
• of aKnBDpttcit. ^actedm» 66tXVI. 6g09> 2*0, 6502, 680*0. «swf mod -ppropjiue 
» oxl opp*«"< rydan*. on «rtte*M rwt^o w tttt bom Uffc Mkiummiiftiatkiu to 
Rojkhdowl p«4 lo fh r^ tho chi» for omO*» p n^ngn r nb g u <wually by the hour or by the it, 



CONSULTING 



Wc offer • wide m»fc of buiincs a 
tnfabt. md 6a»g\ on %ny myk tvImcC to 
toad «|>o» pmc »•>«*, «no expenaa. 



thcchATse tor 



itnir*, odrtce, 
i» nomulh; 



Computer Systems Consultants Inc. 



flirt «• i(Ma nulDf, AhIh, i 
wJi^la |Mbw J mm* mx*r* 



1454 1 
C«»)«V 0«rg* joaw 
(40*> 481-4 J70 ♦ (404)483 17) t 



<nu |i*t Bm Wm mX OS. 4hA um Ul rff 
. ., d,^ VISA i>d MAITUt CAMIl wummmt *Ai iii> mm* ti* M m Gh} mm ** 
■I I^Wn "■, -— . CHfl HiiffM COCR Th^ HUVM Huno^l, XKI>TIS Siwt 



68 rVfcro Journal 



February 89 



59 



Clearbrook Software Group (604)853-9 n 8 



CSG IMS Is THE full featured relation- 
al database manager for OS9/OSK 
The comprehensive structured ap- 
plication language and B+Tree Index 
structures make CSG IMS the Ideal 
tool for file-Intensive applications. 

CSG IMS fof CoCo2/3 OS9 LI/2 (sJngla user) $169 95 

CSG IMS fof OS9 12 or 68000(multi usar) $495.00 

CSG IMS demo with manual $30 




MSF - MSDot File Manager for CoCo 3/OS9 Level 2 
allows you to use MSDos disks directly under OS9- 

Requires CoCo 3, OS9 U, SDISK3 driver $45.00 



SERINA - System Mode Debugger for OS 9 12 

allows you to trace execution of any system module, 
set break points, assemble and disassemble code and 
examine and change memory. 

Requires CoCo3 or Gimix II, OS9 12 & 80 coh terminal $139.00 



ERINA - Symbolic Uter Mode Debugger for OS9 
lets you find bugs by displaying the machine state and 
Instuctlons being executed. Set break points, change 
memory, assemble and disassemble code. 

Requires 80 column display, OS9 L1/2 $69.00 



Shipping: N, America - $5, Overseas - $10 
Clearbrook Software Group P.O. Box 6000-499, Sumas, WA 98295 

039 If lrad«fnarfc of Mkiowr«r» Syt^mi Corp , MSDoa h a twtomMJt oT MtefQMfi Cofp. 



SPECIAL 

ATARI™ 

& 

OS-9™ 



NOW! 

If you have either the 

Atari 520 or 1040 - 

you can take 

advantage of the 

"bargain of a lifetime" 

OS-9 68K and BASIC 

all for the low, low price of: 



$150.00 

Call or Write 

S.E. AAodio 

5900 CTossandra Smith Rd. 

Hlxson. TNI 37343 

615 &42-4<bO! 



~> 



ATARI & AMIGA 
CALL 

As most of you know, we are vef y sensitive to your 
wishes, as concerns the contents of these pages. One of 
the things that many of you have repeatedly written or 
called a bout is coverage fonhe Atari & Amiga™ series of 
68000 computers. 

Actually we haven't been too keen on those systems 
due to a lack of serious softwaie. They were mainly 
expensive "game-toy" systems. However, recently we are 
seeing more and more honest-to-goodness serious soft* 
wa re for the Atari & Amiga machines. That makes a differ- 
ence. I feel that we are ready to start some serious looking 
into a section for the Atari & Amiga computers. Especially 
so since OS-9 is now running on the Atari (review copy on 
the way for evaluation and report to you) and rumored for 
the Amiga. Many of you are doing all kinds of interesting 
things on these systems. By sharing we all benefit. 

This I must stress - Input /torn you on the Atari 
& Amiga. As most of you are aware, we are a 
"contributor supported" magazine. That means 
that YOU have to do your part. Which Is the way it 
has been for over 10 years. We need articles, tech- 
nical, reviews of hardware and software, pro- 
gramming (all languages) and the many other fac- 
ets of support that we have pursued for these many 
years. Also I will need several to volunteer to do 
regular columns on the Atari & Amiga systems. 
Without constant input we can't make it flyl So, if 
you do your part, we oerminrv will do ours. How 
about it, drop me a line or give me a phone call and 
I will get additional Information right back to you. 
We need your input and support if this is to succeed) 



$0 



February '69 



68 Micro Journal 



THE 6800-6809 BOOKS 

..HEAR ye. H£AR 



OS-9" 
User Notes 



By: Peter Dibble 

The publishers of 68' Kitro Journal are proud co make 

available the publication of Peter Dlbblea 

OS9 USI1 POTTS 

Information for the BICDMER to the PIO> 
■egular or CoCo OS9 



Dalng 059 

HELP, HINTS, PR08LEMS, REVIEWS, SUGGESTIONS, COMPLAINTS, 

0S9 STANDARDS, Generating a New Bootstrap, Building a 

new System Disk, 0S9 Users Group, etc. 

Program Interfacing to 059 
DEVICE DESCRIPTORS, DIRECTORIES, "FORKS - , PROTECTION, 
"SUSPEND STATE", "MPES", "INPUT/OUTPl'T SYSTEM", etc. 

Programming Language! 

Assembly LanRuaRe ProRrams and Interfacing; Baaic09, C, 
Pascal, and Cobol reviews, programs, and uses; etc* 

Dleka Include 
So typing all the Source Uatlnga in. Source Code and, 
where applicable, aaaembled or compiled Operating 
Programs. The Source and the Discussions In the 
Columns can be uaed m aa ia~* or as a "Starting Point" 
for developlnR your OHM more powerful Programs. 
Programa aometlmea uae multiple Languagea such as a 
short Assembly Language Routine for reading a 
Directory, which Is then "piped" to a Basic09 Routine 
for output formstting, etc. 



BOOK $9.95 

Typeset — w/ Source UatinRs 

(3-Kole Punched; 8 x II) 

Delinte Bloder S5.50 



AH Source Listings on Disk 

1-8" SS, SD Disk SI*. 95 

2-5" SS, DD Dlaka $24.95 




FLEX™ 
USER NOTES 

By: Ronald Anderson 

The publishers of 68 HICRO JOURNAL are proud to 
make available the publication of Ron Anderaon'a FLEI 
OSKV NOTES, In book form. Thia popular monthly column 
has teen a regular feature in 68' HICRO JOURNAL SINCE 
1979. tt has earned the respect of thousanda of 
68 HICRO JOURNAL readers over the years* In fact, 
n's column has been described aa the 'Bible' for 68XX 
users, by some of the world's lesdlnR microprocessor 
professionals. The most needed snd popular 68XX book 
available. Over Che years Ron's column hss been one of 
the most populsr In 68 MICRO JOURNAL. And of course 
68 MICRO JOURNAL Is the most populsr 68XX magazine 
published. 

Listed below are s few of the TUT files Included In the 
book snd on diskette. 

All TEXT files m the t>ook are on the disks. 



LOGO C1 File load program to offset memory — ASM PC 

MEM0V6 CI Memory move program — ASM PIC 

DUMP CI Pnnter dump program — uses LOGO — ASM PIC 

SUBTEST C1 Simutstion of 6800 code 1o 6809. show differences — ASM 

TERMEM C2 Modem input to disk {or other port input to disk) — ASM 

M C2 Output a file to modem tor another pon) — ASM 

PRINT C3 Parallel (enhanced) printer driver — ASM 

M00EMC2 TTL output to CRT and modem (or other port) — ASM 

SCIPKG C1 Scientific math routines — PASCAL 

U C4 Mmi-moniior t disk resident, many useM functions — ASM 

PRINT C4 Parallel pnnter driver, without PPL AG — ASM 

SETC5 Set pnnter modes — ASM 

SETBASi C5 Set printer modes — A-BASIC 

NOTE: .C1,.CZ, etc. -Chapter 1, Chapter 2, etc. 

**Over 30 TEXT files included is ASM (aaaerfbler)-PASCAL- 
P1C (position Independent code) TSC BASIC-C, etc. 

Book only: $7.95 + $2.50 S/H 

With disk: 5T $20.90 + $2.50 S/H 



With disk: 8" $22.90 + $2,50 S/H 
Shipping A Handling $y 30 pa Book. $2 30 per Disk set 

Foreign Orders AddS4.50 Surface Mail 
or $7.00 Air Mail 

If piying by check - Please allow 4*6 weeks delivery 

♦ AH Currency in US. Dalian 

Continually Updated In 68 Micro Journal Monthly 

Computer Publishing Inc. 

5900 Cassandra Smith Rd. 

Hixson, TN 37343 



bg mj 



i 



"FLEX la a trademark of Technical Syatema Conaultants 

"0S9 is a trademark of Microware and Motorola 

*68' Micro Journal la a trademark of Computer Publtahlng Inc. 



(615)842-4601 

Telex 5106006630 



66 Mao Journal 



February '80 



61 



(f- 



-s 



!!! Subscribe Now !!! 
68 MICRO JOURNAL 

OK, PLEASE ENTER MY SUBSCRIPTION 

Bill My : Mastercard □ VISA □ 
Exp, Date 



Card#_ 



For 1 Year 



2 Years 



3 Yeais 



Enclosed: $_ 



Name 
Street 
City_ 



State 



Zip, 



Country_ 



My Computer Is: 



Subscription Rates 



U.S.A.: 1 Year $24.50, 2 Years $42.50, 3 Years $64.50 
♦Foreign Surface: Add $12.00 per Year to USA Price. 
♦Foreign Airmail: Add $48.00 per Year to USA Price. 

♦Canada & Mexico: Add $9.50 per Year to USA Price. 

♦U.S. Currency Cash or Check Drawn on a USA Bank ! 



68 Micro Journal 

5900Cassa dra Smith Rd 

POB 849 

Hixson f TN 37343 



B 




^ 



Telephone 615 842-4600 
Telex 510 600-6630 



Reader Service Disks 

Disk* 1 Fitesea, Minim, MiniCopy,Minifms. ••Lifetime, ••Poetiy, 

••Foodlist. •'Diet 
Disk- 2 Diskcdit w/ insi.& fixes. Prime, •Prmod, ••Snoopy, 

••Football. ••HexpBwn, ## Lifeiime. 
Disk- 3 Cbug09. Seel, Scc2, Find, Table2. Iniexl. Disk-exp. 

♦Disk save. 
Disk- 4 Mailing Program, •Finddai, •Change, •Tesidisk. 

Disk- 5 •DISKFDC 1, •DISKFDC 2, ••LETIBR. ••LOVBSIGN, 

••BLACKJAK, ••BOWLING. 
Disk- 6 "Purchase Order, Index (Disk file indx). 

Disk- 7 Linking Loader, Rload, llaikness. 

Disk- 8 Cnesi, Unpher (May 82). 

Disk- 9 Daiecopy. Diskfix9 (Aug 62). 

Disk-10 Home Accounting (July 82). 

Disk* 1 1 Dissembler (June 84). 

Disk. 12 Modem68 (May 84). 

Disk- 13 •Initmf68. Te«imf68.*aeanup, # Dskalign,Help.Daie.TxL 

Disk- 14 •Init, *Tesi, •Terminal, •Find, •Diskcdit, Inii Lib, 

Disk. I 5 Modcm9 + Updates (Dae. 84 Gilchrist) to Modcm9 

(April 84 Commo). 
Disk. 16 Copy.Txt. Copy. Doc, Cat/Tat. Cat.Doc. 

Disk- 17 Maidi Utility. RATBAS. A Basic Preprocessor. 

Dlsk-18 ParseMod, SizcCmd (Sept 85 Armsirong).CMDOODE, 

CMDTxt (SepL 85 Spray), 
Disk- 19 Clock, Dale, Copy, Cat, PDELAsm A Doc., Errors.Sys, 

Do, Log.Asm A Doc. 
Disk-20 UNDC Like Tods (July & Sept. 85 Taylor A. Gildiria). 

Dragon.C. Grcp.C. LS.C. FDUMP.C. 
i Disk -21 Utilities & Games - Dale, Life, Madness, Touch, Goblin, 

Siarshot. & 15 more. 
Disk-22 Read CPM * Non FLEX Disks. Ftbsct May 1984. 

Disk. 23 ISAM, Indexed Sequential file Accessing Methods, 

Condon Nov. 1985. Extensible Table Driven. Language 

Recognition Utility, Anderson March 1986, 
Disk*24 68' Micro Journal Index of Articles & Bit Bucket Items 

from 1979 - 1985. John Current. 
Disk-25 KERM1T for FLEX derived froin the UNUC ver. Burg 

Feb. 1986. (2)-5 M Disks or (l)-8* Disk, 

Disk 26 Compact* UniBoard review, code & diagram, Burlison 

March '86. 
Disk-27 ROTABIT.1XT. SUMSTEST.TXT, CONDATA/IXT. 

BADMEN.TXT. 
Disk-28 CT*82 Emulator, bit mapped. 

Disk-29 ••Siar Trek 

Disk 30 Simple Winchester. Dec.86 Green, 

DiskOl ••• Read/Whie MS/PC-DOS (SK*DOS) 

Disk-32 Heir-UNDC Type upgrade - 68MJ 2/87 

Disk.33 Build the GT~4 Teiminal - 68MJ 1 1/87 Condon. 

Disk-34 FLEX 6809 Diagnostics. Disk Drive Test. ROM Test, 

RAM Test -68MJ 4/88 Koipi. 
NOTE: 
This is a reader service ON LYJ No Warranty is offered or implied, they are 
as received by 68' Micro Journal, and arc for reader convenience ONLY 
(some MAY include fixes or patches). Also 6800 and 6809 programs arc 
mixed, as each is fairly simple (mostly) to converi to the other. Software is 
available to cross -assemble all. 

• Denotes 6800 - •• Denotes BASIC 

*** Dcnoics 68000 - 6809 no indicator. 




8" disk $19.50 
5" disk $16.95 




Shipping & Handling -U.S.A. Add: - $3 JO 
Overseas add: $4.50 Surface - $7.00 Airmail 

68 MICRO JOURNAL 

5900 Cassandra Smith Rd. 

Hixson, TN 37343 

(615)842-4600 - Telex 510 600-6630 



62 



February *89 



68 Mcro Journal 



The Only 6809 BASIC to Binary Compiler for OS-9 

FLEX or SK*D()S 

Even runs on the 68XXX SK*D()S Systems* 



,.. ........ ... N 

i Hundreds Sold at 
i Suggested Retail: 

i 



$100.00 



■ 



• 6809 - OS-9™ users can now transfer their Fl£X™ 
Extended BASIC (XBASIC) source files to OS-9, com- 
pile with the OS-9 version and run them as any other 
OS-9 binary "CMO" program. Much faster than BASIC 
programs. 

• 6809 - FLEX users can compiler their BASIC source 
files to a regular FLEX ",CMD* file. Much faster execu- 
tion. 

• 68XXX - SK*DOS 1M users running on 68XXX systems 
(such as the Mustang-08/A) can continue to execute 
their 6809 FLEX BASIC and compiled programs while 
getting things potted over to the 68XXX. SK'DOS 
allows 6809 programs to run in emulation mode. This is 
the only system we know of that will run both 6809 & 
68XXX binary files. 

K-BASIC is a true compiler. Compiing BASIC 6609 pro- 
grams to binary command type programs. The savings 
in RAM needed and the increased speed of binary 
execution makes this a must for the serious user. And 
the price is now RIGHT! 

Don't get caught up in the "Learn a New Lan- 
guage" syndrome • Write Your Program In 
BASIC, Debug it In BASIC and Then Compile 
It to a .CMD Binary File. 



For a LIMITED time 
save over 65%. .. 
This sale will not be 
repeated after it's 
over! * 

t m ......... ... N 

SALE SPECIAL: 

$69.95 




Thank-You-Sale 



OnCy from: 



c 



S.E. Media 



p 



i 



5900 Cassandra Smith RcL 

Hlxson, To 37343 

Tetephone 615 842*6609 

Tfetex 510 6OV6630 



A Division ol Computer Publishing Inc. 
Over 1,200 Titles - 6aav6609^8OD 



* K-8ASC wO) fin infer 68XXX 9C*DGS w\ ontMk* mode far fe 6809. 

Plioe wbfta 10 dm^z wchou nrfke. 



68 Micro Journal 



February '69 



63 



PT-68000 SINGLE BOARD COMPUTER 

The PT68K2 is Available in a Variety of Formats 
From Basic Kits to Completely Assembled Systems 



BASIC KIT (8 MHZ) - Board. 66O0O, 

HUMBUG MONITOR + BASIC in ROM, 
4K STATIC RAM, 2 SERIAL PORTS, all 
Components $200 

PACKAGE DEAL Complete Kit with 
Board 68000 10 MHZ. SK'OOS, 512K 
RAM. and all Necessary Parts $575 

ASSEMBLED BOARD (12 MHZ) 

Completely Tested, 1024K RAM, 
FLOPPY CONTROLLER PIA, SK'OOS 
$899 

ASSEMBLED SYSTEM - 10 MHZ 
BOARD, CABINET POWER SUPPLY, 
MONITOR ♦ KEYBOARD, 60 TRACK 
FLOPPY DRIVE, CABLES $1299 
For A 20 MEG DRIVE, CONTROLLER 
and CABLES Add $295 



PROFESSIONAL OS9 



STAR.K SOFTWARE SYSTEMS CORP. 



$500 




FEATURES 

• MC68000 Processor, 8 MHZ Clock (optional 
10,12,5 MHZ) 

• 51 2K or 1024K of DRAM (no wait states) 

• 4K of SPAM (6116) 

• 32K,64K or 12BK of EPROM 
■ Four RS-232 Serial Porte 

• Floppy disk controller will control up to four 
5 1/4*, 40 or 60 track. 

• Clock with on- board battery. 

• 2 - B bit Parallel Ports 

• Board can be mounted in an IBM type PC/ 
XT cabinet and has a power connector to 
match the IBM type power supply. 

• Expansion ports 6 IBM PC/XT compatible 
WO ports The HUMBUG* monitor supports 
monochrome anoVor color adaptor cards 
and Western Digital Winchester interface 
cards. 



PERIPHERAL TECHNOLOGY 



1710 Cumberland Point Dr., Suite 8 

Marietta, Georgia 30067 

404/984-0742 

VISA/MASTERCARD/CHECK/C.O.D. 



Send For Catalogue 
For Complete Information On All Products 



/r 



DATA-COMP 



SPECIAL 



Heavy Duty Power Supplies 




For A MmJM 
prbes are 



time our HEAVY DOTY SWTTCHNG POWER SUPPLY. These m BRAND NEW unto. Nble that these 
than 1/4 the normal price lor these high quaftty unto. 



Make: 6csd*rt 

Six: 10 J x 5 x 15 inches 
Including heavy manning track** and heasxnk. 

Raring: in 110/220 volts ac (strip change) Out; 130 wads 

Output +5v - 10 amjB 
+l2v-4.0 amjB 
+12v-2.0amjB 
-l2v-0.5amp> 



Mating Connect*: Terminal strip 
Reaction: Automatic short circuil recovery 
SPECIAL: $59.95 each 
2 or more $49.95 each 

Add: J7J0«ch S/H 



> r 



K 



Make: Boschert 
She: 10.75 x &2 x 225 inches 

Rating: 110/220 ac (strap change) Out: 81 watts 

Oxiptic; +5v - 8.0 an^B 
+12v - 24 amps 
+12v-24amps 
+12v-2.1 amps 
-12v - 0.4 amjB 

Mating Groans: Molex 

Load Reaction: Aussmazic short circuit recovery 

SPECIAL: $49.95 each 

2 or mone $3935 each 

Ad* ST 30 S/H each 



J ^ 



^= 



5900 



Smith Bet, tfeaur\ Trv 37343 Totophooe 615 6424600 



Telex 510 «O«30 



64 



February '89 



68 Micro Journal 







Now Offering "FLEX'* (2 Versions) 
AND 'STAR- DOS PLUS + " 




For Ordering C*ll 

(615)842-4600 



FROM - DATA-COMP, C.P.I. 



A Family of 100% 68XX Support Facilities 
The Folks u/ho FIRST Put FLEX* 
The CoCo 



on 




TSC Editor 

RtjtSOOO 
NOW $35.00 



DOS PLUS 4 

• Functions Same as FLEX 

• Reads - writes FLEX Disk* 

• Run FLEX Programs 

• Just type: Run "STAR-DOS'' 

• Over 300 utilities & programs 
to choose from. 



PLUS 
ALL VERSIONS OF FLEX & STAR DOS 




+ Read-Write-Dir RS Disk 
+ Run RS Basic from Both 
+ More Free Utlities 



INCLUDE 

+ External Terminal Program 
+ Test Disk Program 
+ Disk Examine & Repair Program 
+ Memoiy Examine Program 
+ Many Many More!!! 



TSC Assembler 

fUfttOOO 
NOW $3500 



Cora Disk Dnvp Susleuisl 



2 TH1NLINE OOUILB SIDED DOUILE DENSITY DISK DRIVES 
SYSTKH VlTN PDtJEI SWPLV .CAlINfcT, DISl OllVE CARLE. J4M 
NEW DISK CONTROLLER JPO-CP VJTfi J-DOS .US-DOS OPERATING 
SYSTEMS. $4*9.95 

Spidfy What CONTROLLER You W#nt JAM, or tADIO IHACX 



THINLINE DOUIt^ SIDED 
DOUILE DENSITY 40 TRACKS 



1 



Verbatim Diskettes 



Sinftle Sldtd Double Deoilty 
Daubl* Sided Doubl* Deotlty 



Cauli oilers 



J4N JPO-CP WITN J-DOS 
WITH J-OOS, RS-DOS 
RADIO SNACK J, I 

RADIO SHACK Dlik CONTROLLER 1.1 



Disk Dtive Cables 



Cflbl* for One Drive 
Cable for Two Drive* 



$179.9* 



$ 14.00 
* 14.00 



$139.95 
$159.95 
$114.95 

3134.93 



S 19.93 
S 24.93 



MK VPCRADt 

POR C.D.E.P, AMD COCO 11 
RADIO SHACK BASIC 1.2 
RADIO SHACK DISK IAS1C 1.1 

DISK OltVE CAR I NET PCJ1 A 
SINGLE DRIVE 

DISK DRIVE CABINET POR TWO 
TK INLINE DRIVES 



niVTCRJ 

EPSOM U-RO 
EPSON MX-70 
EPSOM KX-lOO 

acojmmue* not ipso* 

6 J 46 2K SEllAL BOARD 
6 J 49 32K EXPAND TO J 26K 
EPSON MX -AX- HO KI150NS 
EPSON LX-80 Rl IRONS 
TEACrOR UNITS POR LX-80 
CARLES 4 •THEN INTERSACKS 
CALL POR PRICING 



$ 29.95 

$ 24.93 
I 24.93 



I 49.93 
$ 49.95 



4219.95 
IU3.95 
$495.95 



$ R9.95 
$149.95 
$ 7.95 
I 5.93 
I 39.95 



DATA-COMP 

5900 Cassandra Smith Rd 
HiKson. TN 37343 


|e» 




SHIPPIN6 

USA ADD 211 

FOREIGN ADD 5» 

MIH. %2$Q 


(615)842-4600 

f Of Ofdvftng 

Telex 5106006630 


S 





An Ace of a System in Spades! The New 

MUSTANG-08/A 



Now with 4 serial port* standanl ft speed Increase to 12 Mhx CPU + on board battery 
backup and include* the PROFESSIONAL 06-9 package - Including the $500.00 OS9 

C coxnpUerl This offer wont last ftn e vei ! 



NOT 128K, NOT 512K 
FULL 768K No Wait RAM 

The MUSTANG4B™ system took every hand hum al 
other 68006 syaems we tested running OS-9 68KJ 

The MU5TANO06 fcndudes OS^68K^ and/be Paler 
Stark's SKDOS™ SKDOS Is a single user, slngte testis 
system that takee up where *FLEX™ Islt off. SKDQS is 



Now even faster! 
with 12 Mhz CPU 



C Campfk tin** O&S 68K Hwd Disk ^\ 
ftlSTANGOB 81/taCPU Omfcl 32ew 



Other popuHr O008 system 

MUSTANWfiO 



mh 05 sec 
0mh-2tssc 



=^ 



1 adDaty a 68XXX R£X type eyslem f/NJb* a 


73C product; 

WftJMliT, sTIIlll r-a 


p*Jjger\pn jftS 


rteVi. AJTk Toffluiar 6« 
A on Jsfc lO Fact ta] 


ajL* KI^Ep /5£ 



System Inchidee OS-9 68K or 


SK-DOS - Your Choice 


Specifications: 




CPU MCG800B 


12Mtt 


RAM 76SK 


2SEK Ch*e 


No Wat Stake 




PORTS 4-RS232 


MCfiBffil QUART 


2-8bftPvay 


MCrSI PtA 


aOCK MK48T02 


Real This dock Bst BAJ 


EPROM 18K 32K or B4K 


Sekriafala 


aOPPY WD1772 


51M0mw 


HMD DtSK kU&* Port 


VYD1002 Bend 



25 Megabyte 
Hard Disk System 



JV Now more serial ports - faster CPU 1 
Battery B/U - and $850.00 OS-9 Profes- 1 
- slonal with C compiler included! j ap^, (fa, & p^m papam) to b» utiiiaod Wha* is not 

avafette to the usor is required and reserved for ** system 
A RAM disk of 480K can ba aasly ojrtigured. laavng 288K 



$2,398.90 

Complete with PROFESSIONAL OS9 

includes the $500.00 C compiler, PC 

style cabinet, heavy duty power supply, 

5 DDDS SO track floppy, 25 MegByte 

^ Hard Disk - Ready to Run i 

UheXe other 68008 sySterra there are several Bjjnflcarrt 
dflarencm The MUSTANG-08 is a full 12 fcfagahertz system. The 
RAM uses NO wal states, this means tul bore MUSTANG type 
performance. 

Abo, atowrg for addressable HDM4>ROM the RAM b the 
maximum allowed tor a 68008. The 68008 can only address a 
total of 1 Megabytes of RAM. The design ata*s al the RAM 



$400.00 



See Mustang-02 Ad - page 5 
for trade-n detals 




MUSTANG-08 



LOOK 



Seconds 



ijunp 



32 ba Repaid 
Eroegir la% 
:... 18.0... 9.0 

>. *■ • *W*"» <<S< j 



r tnt fc v 

register long I; 

lor (txO; I < 899999; *4l); 



free lor prqjBrr>*y*am RAM apace. The RAM DISK can be 
configured to any sbe your app i ^y i requres (system must 
have 128K In addition to Is other requlremeiits) Leaving the 
remainder of the orjanarf 768K for program use. Suffoarf 
source included (6faw* sto) 



FlfXma 



MUSTAHO-Oitai* 



Data-Comp Division 

r X^teT X A Decade of Quality Service' 
V^ System WaldWUe 
Computer Publishing, Inc. 5900 Cas&tfa Sntfi Road 
Telephone 615 842-4601 -Telex 510 KXV6630 Hbtsoo, Tn 37343 



* Thcw vrth SWJPC r+dan*y RiX S - - Col for apectel hto.